Restructure this thing before it becomes unwieldy