refactoring tasks and taskdescs and check functions