they don't mean much beyond the implementation - just trying to avoid cut-and-paste... cleanup incoming