Initial vertical implementation through all layers.
Created main interfaces and concrete systems.
Left out dependency inversion principle for the sake of simplicity.