add abstraction and ObjectSequence