genericized args