Changes to Component class and subclasses.

The instance variables of Component are no longer protected but instead
private with getters/setters.