refactor when