completed refactoring and missing implementations