added first pass at zi.js