Make BaseRepository more extensible