refactor developer materials. Fixes DEVELOPER-989

Most of this is moving code around to their own functions, introduced the option to update the page hash or not.