Rough draft. Works, not yet beautiful.