More rigid input arg checking.
Better Tests, better error checking.