restructure
restructure code