more work on the js dependency engine