Added Interfaces

Refactored to add some Interfaces.