new constructor technique to allow mixes of vec and scalar inputs