fixed to use negative numbers