Repository Software Design Pattern