task function is optional because the API provides reset and done methods.
0.0.2