basic entities and interfaces defined