BCCVL-124 Reorganise the src to be more modular