only uses TaskCategory.values() for length checks