reorganized struct