traded setting name property to automatic naming and moved more functionality into Controller superclass