First working prototype. Ignore proper design for now.