Add caching and change wordlist to hash