start refactoring, for better code reuse, and adding some repository methods that return multiple records