fiddles with styling
refactors js, externalizes CSS