API refactor implemented