add missing function
fix typo
fix the abstract class