Resolve CR #2 TODOs: cache 'this' once for TN class, use switch statements