this logic (and other logic from this class) should stay in the service, not DAO