major rewrite of Element inheretance model, need to implement a general Controller class