restructuring #1.
restructure #2
fully restructured.