refactored repository pattern