components() returns a reference.  Calls are to components()

We are currently of the view that returning a clone of an array reference is not too useful and thus it is less magical if we return the reference.  In accordance, the components variable is made private and the getter is called where appropriate