restructured source code