more thinking about a nice interface (still WIP).