rework interface a bit.