more user error checking