 
   static let sharedInstance = Theming()
 
-  private let theme: Variable<Theme>
+  private let _theme: Variable<Theme>
+
+  var theme: Theme {
+    return _theme.value
+  }
 
   init(theme: Theme) {
-    self.theme = Variable(theme)
+    self._theme = Variable(theme)
   }
 
   private convenience init() {

  }

  func setTheme(theme: Theme) {
    self.theme.value = theme
  }
}


extension Theming {

  var textColor: Observable<UIColor> {
    return _theme.asObservable().map { $0.textColor }
  }

  var secondaryTextColor: Observable<UIColor> {
    return _theme.asObservable().map { $0.secondaryTextColor }
  }

  var accentColor: Observable<UIColor> {
    return _theme.asObservable().map { $0.accentColor }
  }

  var backgroundColor: Observable<UIColor> {
    return _theme.asObservable().map { $0.backgroundColor }
  }
}
