works with nojs + other fixes