sub concatenate {
my $self = shift;
my ($new_seq,$prepend) = @_;
croak "argument to concatenate must be a string or a Sequence object"
if ref($new_seq) && !$new_seq->isa(__PACKAGE__);
my $to_append = ref($new_seq) ? $new_seq->seq : $new_seq;
return $self->new($prepend ? $to_append . $self->seq
: $self->seq . $to_append);
}