A bit of a refactor.
more sophisticated hiding and showing
styling shit