this entire demo is javascript