Abstract class for task types