change callbacks to promises
changed create/delete reserved function names to add/destroy