Still working on optimizations. Blech.