add singleton with ThreadLocal