Rewrite API to be more explicit