You don't have to specify the units on input. If you supply a number (or array of numbers), then they just get converted to numbers.
The idea was that of you were reading stuff from another source with the units specified, then the direction of the conversion would be determined for you. Just a thought.
Also, if you don't specify the units at declaration time, units are not even looked for. If they are supplied at runtime, its just results in a runtime "non-numeric" error. I'll look at your code now ;^).
Examine what is said, not who speaks.