add a small interaction abstraction for console