A silly over engineered lift simulator, as tool to learn interface based development, and some code patterns in c#