added api call hooks to do operations in between the default operations, also, added a user model