added interfaces and repositories