got rid of generic types