impl: strategy pattern, ren: *Task -> *Strategy