new api for chainable tasks