improved js support