separate interfaces (work in progress)