Before factory changes.
After factory change. Moved implementations of Element into factory
Element object to keep them private.
Finished chapter 10.