Added Interfaces and changed package structure. We need more work but it...

... gives a good outline for the public methods we need in each class.