Significant Rewrite of... everything

Split up the app into component pieces. Rotations work better now, but
not correctly.