refactored source tree layout