More thorough argument checking & display usage string on failure