private void SetParents()
    {
        //parentObjects.Clear();

        foreach (AttachmentTriggerController trigger in triggers)
        {
            AttachmentPointController attachmentPoint = trigger.GetOverlappingAttachmentPoint();

            if (attachmentPoint)
            {
                InteractiveObjectController newParent = attachmentPoint.GetOwningObject();

                if (newParent && (newParent.grabbed || newParent.attached) && !parentObjects.Contains(newParent))
                {
                    newParent.AddObjects(this);
                    newParent.AddMass(mass);
                    parentObjects.Add(newParent);

                    //Debug.Log("Object: " + this.name + " adding object: " + attachmentPoint.GetOwningObject().name + " as a parent object.");
                    //Debug.Log("Parent objects count: " + parentObjects.Count);
                }
            }
        }

        if (attachedObjects.Count > 0)
        {
            foreach (InteractiveObjectController attached in attachedObjects)
            {
                attached.SetParents();
            }
        }

        //SayParents();
    }
    // setters

    public void AddMass(float massToAdd)
    {
        mass += massToAdd;

        if (GetComponent <Rigidbody>())
        {
            GetComponent <Rigidbody>().mass = mass;
        }

        CalculateMovementFactors();

        if (parentObject)
        {
            parentObject.AddMass(massToAdd);
        }
    }