fixed generic typing