Uses groups and tabs to hide the complexity of two different I/O options.