Let users customize the error message with demand(key, msg)