Rebuild to use vanilla JS