js bindings manually