Restart

More or less a complete rewrite.