cons: add output handler