https://owa.tailspintoys.ca/Stuff/Ex2013SP1Architecture.pdf