why UserRepository interface is in the domain layer?Does this cause the data layer to rely on the domain layer?right?