pushed out of the domain the rest of the dependencies to the persistence layer