re refactor 2