rebuild js
add tests