Source refactoring (2)
Source refactoring (3)