1. return register(...) directly
2. fix push mode and add Contained inheritance to use getNextSibling for finding the element to push