use local url for sample, bubble the internal signal event so it's not lost to the on-* delegation mechanism; TODO: dudupe the signals wrt bubbling
update tools