implementing Sequence