Refactored the source tree