ProofBlocks: A Visual Approach to Proof