use with open throughout
verify messages are documented