public void DoDraw()
    {
        if (current == null)
        {
            return;
        }

        if (current.nextJoint != null)
        {
            if (Mouse.RightMouseDown())
            {
                Membrane nextNext = (Membrane)current.nextJoint.GetConnected();
                current.Disconnect();
                Membrane next = CreateMembrane((nextNext.transform.position + current.transform.position) / 2);
                current.ConnectTo(next);
                next.ConnectTo(nextNext);
            }
        }
        else
        {
            var   difference = Mouse.WorldPosition() - (Vector2)current.transform.position;
            float springDist = current.GetNearbyRadius() + .25f;
            // if mouse is more than immediateSpringDist from current, make a new node
            if (difference.magnitude > springDist)
            {
                Membrane next = CreateMembrane((Vector2)current.transform.position + difference.normalized * springDist);

                current.ConnectTo(next);

                current = next;
            }
        }
    }