spirit these methods away into their own file