omitted unnecessary output
major reorganization