restructure for clarity