adding user factory back with everything constructed properly