I understand how usecase should depend on entity, but I don't know how repository depends on usecase. Say we want to store newly created users using userUsecase.register() to database, usecase should know about repository right? At least usecase know about the repository interface, not the implementation