Fixed #1, refactored some JS and rewrote some CSS