api refactor looking good