rebase for api focused implementation