crudify using promises