add Array.observe() support
add hook function
update js files
add more examples
impovement event handling