add underscore
add buf to constructor
flesh out put method
add s