updated edit_api so create and update take callbacks and return self to the callbacks