Buggy, but a semi-working start.