More user control, additional error checking