New design, deprecated placeholder classes in favour of mixins

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
Ah, that should actually be private, I'll add an underscore