Interface redesign

WIP for #1