Idea for pull request refactoring

This is just some initial work to give some ideas of what I am thinking.