avoid thread local - removed wrapping with weak reference