Added Interfaces, Contracts and UnitTests