New design, deprecated placeholder classes in favour of mixins, also fixes #36

DO NOT MERGE as this still hasn't been polished by the design team. We'll look into it on Monday. Please comment fixes to current implementation