changed fragment writing API of bookmarkable components in order to better encapsulate the corresponding JavaScripts and support custom fragment updating strategies