clean up (admittedly still-messy) design