add variadic product and sum gate constructors