refactor 20