refactor initTask