generalized print routes
refactored core helpers into their own file