Full API Rewrite