add some helper method
override toString in different place
fixed retain cycle caused by XJSWeakReference