added repository-layer (without interfaces)