Added more haskell like treatment of negative numbers