private
output is private
work in progress