js support
many other fix