add support for negative numbers