Refactor code and add Load method