adding better number parsing