#48 refactoring Base: move functions to other modules