better way to parse negative numbers
added todo