     
     @discardableResult public func left(to view: UIView? = nil, inset: CGFloat = 0.0) -> NUIMaker {
 
-        checkSuperView(view)
-        return checkRelationType(for: view ?? self.view.superview!.nui_left) { [unowned self] relationView, relationType in
+        return checkRelationType(for: view ?? self.view.superview?.nui_left) { [unowned self] relationView, relationType in
             
             let handler = { [unowned self] in
                 let x = self.convertedValue(relationType: relationType, forView: relationView) + inset

    
    @discardableResult public func right(to view: UIView? = nil, inset: CGFloat = 0.0) -> NUIMaker {
        
        checkSuperView(view)
        return checkRelationType(for: view ?? self.view.superview!.nui_right) { [unowned self] relationView, relationType in
            
            let handler = { [unowned self] in
                if self.isExistsRelationParameters(relationType: .Left) {

    
    @discardableResult public func bottom(to view: UIView? = nil, inset: CGFloat = 0.0) -> NUIMaker {
        
        return checkRelationType(for: view ?? self.view.superview?.nui_bottom) { [unowned self] relationView, relationType in
            
            let handler = { [unowned self] in
                if self.isExistsRelationParameters(relationType: .Top) {
