code structure re-org