Exploring Repository Design Pattern Variations