feat: return promises for activate/deactivate

Closes #15