refactored SupervisedTask