Add some abstract methods
:memo: add docs