move interpreter_cache from __init__ to a property