     /// Variable that stores the device information
     var deviceInfo:DeviceInfo
     
+    /// Array of Listeners
+    var listeners: [IButtonListener]
+    
     /**
     Class constructor
     */
     init() {
         
         #if os(iOS)
+            
+            listeners = [IButtonListener]()
             
             let device: UIDevice = UIDevice.currentDevice()
             deviceInfo = DeviceInfo(name: device.name, model: device.model, vendor: "Apple", uuid: NSUUID().UUIDString)
             
         #elseif os(OSX)
             
-            let host: NSHost = NSHost.currentHost()
-            
-            // TODO: find a better way to do this and get the model identifier in osx
-            
-            deviceInfo = DeviceInfo(name: host.name!, model: "", vendor: "Apple", uuid: NSUUID().UUIDString)
-            
-        #endif
-    }
-    
-    public func addButtonListener(listener : IButtonListener) {
-        
-        // TODO
-    }
-    
+            let host: NSHost = NSHost.currentHost()            
+            deviceInfo = DeviceInfo(name: host.name!, model: getSysValue("hw.model"), vendor: "Apple", uuid: NSUUID().UUIDString)
+            
+        #endif
+    }
+    
+    /**
+    Gets the device information of the device
+    
+    :returns: Object Bean containing all the device information
+    :author: Ferran Vila Conesa
+    :since: ARP1.0
+    */
     public func getDeviceInfo() -> DeviceInfo {
         
         logger.log(ILoggingLogLevel.INFO, category: "DeviceImpl", message: "name: \(self.deviceInfo.getName()), model: \(self.deviceInfo.getModel()), vendor: \(self.deviceInfo.getVendor()), uuid: \(self.deviceInfo.getUuid())")

        return Locale(country: country, language: language)
    }
    
    public func removeButtonListener(listener : IButtonListener) {
        
        // TODO
    }
    
    public func removeButtonListeners() {
        
        // TODO
    }
    
}
    public func getLocaleCurrent() -> Locale {
        
        // Gets the current locale of the device
        let currentLocale: NSLocale = NSLocale.currentLocale()
        
        let localeComponents: [NSObject : AnyObject] = NSLocale.componentsFromLocaleIdentifier(currentLocale.localeIdentifier)
        
        let country: String = localeComponents[NSLocaleCountryCode] as String
        let language: String = localeComponents[NSLocaleLanguageCode] as String
        
        logger.log(ILoggingLogLevel.DEBUG, category: "DeviceImpl", message: "Country=\(country)")
        logger.log(ILoggingLogLevel.DEBUG, category: "DeviceImpl", message: "Language=\(language)")
