Functional, but very rough, prototype.