fully working html, css, js (except for the stupid background image)