Some classes with abstraction and interfaces