Reorganised some of the solution structure.
Added classes/interfaces based on the preliminary HLD workshop.