Refactor: Split `AbstractContainer` from `AbstractElement`