almost done, need to add some constraints for some blocks, and scale initial values by difficulty