change api, better approach