3 stages of code reading: understanding the flow, understanding the details, then assaulting the code until you're persuaded it's correct.