refactor & user load