js improovements