Updated setup.py
Added cache module with memoization.