drafting the e3x js api