repo & unit_of_work refactoring