refactor controller code, add datacontext abstraction