add js api. closes #15