MakeProof completely rewritten

Cleaner code, will be easier to extend, customize and maintain.