BaseCRUD controller refactored (all non-controller functionality moved to other classes)