added JS functionality, lots of styling