Initial refactor to match  http://infinitemonkeycorps.net/docs/pph/ guidelines