                 return size
             case .RoundedRect(_, let size, _):
                 return size
+            case .OvalWV(let view, let margin):
+                return ovalSize(view, margin: margin)
+            case .RectWV(let view, let margin):
+                return rectSize(view, margin: margin)
+            case .RoundedRectWV(let view, radius: _, let margin):
+                return rectSize(view, margin: margin)
             }
         }
         

        case Oval(center: CGPoint, width: CGFloat)
        case Rect(center: CGPoint, size: CGSize)
        case RoundedRect(center: CGPoint, size: CGSize, radius: CGFloat)
        
        public var frame: CGRect {
            return frameWith(center, size: size)

                return center
            case .RoundedRect(let center, _, _):
                return center
            case .OvalWV(let view, _):
                return center(view)
            case .RectWV(let view, _):
                return center(view)
            case .RoundedRectWV(let view, _, _):
                return center(view)
            }
        }
        
