Add error for unrecognised arguments
Provide default program name
Add ability to add with arg class instances, made required named parameter default to true