big ol refactor