Adds canary support

Replaces #2