refactor, because I can