again maybe put it in a ThreadLocal