source code reorganization