implement State
implement TaskListener