Initial version

Copied over from quiver with slight tweaks:

* replace `getClock` with `elapsed`
* improve docs.