support negative input values