break out the support methods into their own module