use Dictionary instead of switch
support exponent components in numbers