revised interfaces, wip