refactoring | started building up public api