Proper cancel handling refs #49