Replaced Reflection from TypeInterpreter with interfaces