* reduce amount of anonymous functions and separate main logic from setup code * clean up the way wires are manipulated * the checker should report failures more explicity and we should attempt to make use of the relations (similarly to the ultra circuit checker)