changes generic to general because generic is a reserved word in visual studio