add 'project.license' value to get custom license copy at top of each class.
MachineFactory is a factory class that makes a machine. In production, there is only one Machine per application, but for unit testing, we may want different rules. or even a MockMachine
The AbstractMachine class implements common methods and variables for a Machine. 
 Concrete implementations will subclass from this.
Convert Machine to an interface, move all the method implementations into  AbstractMachine
Change to use MachineFactory to get a machine.
Build on the changes that encapsulated the Machine machine variable.
reflect encapsulation of Machine within TinygDriver