IOutput and implementation added