uses preprocessor for divisor
adds fututre work for optimization
start at creating a commitment tree