usage sample at demo.html