def register_backend(key, classname, params = {})
      raise ArgumentError, "backend key must be a symbol!" unless key.is_a? Symbol

      unless classname.class == Class
        raise ArgumentError, "backend class must be class (not instance or string)"
      end

      unless classname.method_defined? :send_sms
        raise ArgumentError, "backend must provide method send_sms"
      end

      define_backend(key, classname, params)
    end
def register_backend(key, classname, params = {})
      raise ArgumentError, "backend key must be a symbol!" unless key.is_a? Symbol

      unless classname.class == Class
        raise ArgumentError, "backend class must be class (not instance or string)"
      end

      unless classname.method_defined? :send_sms
        raise ArgumentError, "backend must provide method send_sms"
      end

      define_backend(key, classname, params)
    end
Register sms provider backend

 @param key [Symbol] Key for acessing backend in any part of AnySMS
 @param classname [Class] Real class implementation of sms backend
 @param params [Hash]
   Optional params for backend. Useful for passing tokens and options