some ideas for how to refactor