committing most of api stuff all at once...