add task functionality