Many changes, including a new module for output.