New classes and some new implementation.
Still need to define an interface for Controller.java and
WebElementMap.java because both are element maps.