refactor user loading logic into single loader class