reordering all the interfaces
refactoring to extract repositories from controllers
expanded on the caching for all the others