New button designs

Holding this open for review at the moment.
Yeah, so I just left that whole block of code alone since there are absolutely no test cases against it. It needs to be cleaned up. Perhaps @vijay-r can?