split stuff into more files; iterated on proofs