source code restructuring