starting to rework API