add chainable on, off, once