     
     }
     
-    required init(coder aDecoder: NSCoder) {
+    required public init(coder aDecoder: NSCoder) {
         super.init(coder: aDecoder)!
         self.initialize()
     }
 
     // MARK:- Text Rect Management
-    override func textRect(forBounds bounds: CGRect) -> CGRect {
+    override open func textRect(forBounds bounds: CGRect) -> CGRect {
         return CGRect(x:4, y:4, width:bounds.size.width, height:bounds.size.height);
     }
 
-    override func editingRect(forBounds bounds: CGRect) -> CGRect {
+    override open func editingRect(forBounds bounds: CGRect) -> CGRect {
         return CGRect(x:4, y:4, width:bounds.size.width, height:bounds.size.height);
     }
 

    
    
    //MARK:- Set Text
    override var text:String?  {
        didSet {
            floatTheLabel()
            checkForDefaulLabel()

    }
    
    //MARK:- UITtextfield Draw Method Override
    override open func draw(_ rect: CGRect) {
        
        super.draw(rect)
        self.upadteTextField(frame: CGRect(x:self.frame.minX, y:self.frame.minY, width:rect.width, height:rect.height));
