First draft on #7. Still many bugs to squish.