rewrite phantom.jsx with native binding