refactoring + start of user centric API design