add output functions