Let's favor correctness for now. Optimizations come later.