Added invalid? method
Trying to make testing this a little more clear
License statement
More tests
Separated IO and Client commands to more easily facilitate testing