improve whitelist structure