public static boolean isInside(Positioned a, Positioned b, boolean notOnTheEdge)
    {
        if (notOnTheEdge)
        {
            if (occupySameSpace(a, b))
                return true;

            if (isInsideInSameHorizontalSpace(a, b))
                return true;
            
            if (isInsideInSameVerticalSpace(a, b))
                return true;
        }
        
        return  pointInside(a, b.leftBorder(), b.topBorder(), notOnTheEdge) ||
                pointInside(a, b.rightBorder(), b.topBorder(), notOnTheEdge) ||
                pointInside(a, b.leftBorder(), b.bottomBorder(), notOnTheEdge) ||
                pointInside(a, b.rightBorder(), b.bottomBorder(), notOnTheEdge);
    }