better specification of parameter types