Should complete in

This is #110 rebased with a few changes.

Fixes #109