Created IRepository in order to improve the Repository design further.