divided into html and js