semi-drastic refactor.  About to rip the monte function to shreds