add 'Scalar' type so we're not bound to float