Added and implemented IRepository and others.