implement data structure for tasks