refactor 28