added some initial classes and interfaces