ThreadLocal is not serializable so marking it as transient