new generic additions slower but nicer