<3 this refactor