add option to drive differently by squaring the inputs