Performance exploration

Moves away from using selectors to define components. Now tag names, attributes and class names are used. This allows us to do a dictionary lookup rather than having to search all instances and executing a selector. The performance gain is about 35x that of what it was with selectors.