Also you appear to allocate the instances here, but also in addNonCircleToSwitchingLoci etc.  Personally I'd be inclined to allocate them when you set them, and check for errors and error out of the method when/if fails