first go at a less shameful design