a lot of css and some javascript