Why are we using factory inside a UserManager?