refactored lockArgs away into a version of optionalArgs
moved manual argument locking specs from lockArgs to optionalArgs