Having added applications inherit ExternalApplication gives us a lot of flexibility, but I am starting to question the need for such a flexible design. Perhaps making it a simple struct instance would reduce all the boilerplate code written for the added apps... Need to investigate.