Full JS API