Adding inline docs and removing user_cache from lib, added as dependency