why non-generic?