implements US22(TODO) and US5(scrunch)