cleanup, enhance error-handling, add 201 response, be json-api compliant