CHANGED: renamed the ComponentRef struct to be more obviously a temporary experiment