ThreadLocal version final