new: step
code cleanup
refactoring: the output stream method is now named put instead of get