adding whitelist, blacklist, and tests