implement outputer