change Output interface to use Write