re-organize structure