 
 extension NSDate {
     
-    var dateFormatter: NSDateFormatter {
+    class var dateFormatter: NSDateFormatter {
         struct dateFormatterInstance {
             static var onceToken : dispatch_once_t = 0
             static var instance : NSDateFormatter?

    }
    
    public func stringFromDateWithFormat(format: String) -> String {
        dateFormatter.dateFormat = format
        return dateFormatter.stringFromDate(self)
    }
    
    public func stringFromDate() -> String {
        dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
        return dateFormatter.stringFromDate(self)
    }
    
    public func prettyDateString() -> String {
        dateFormatter.dateFormat = "dd/MM/yyyy"
        return dateFormatter.stringFromDate(self)
    }
    
    public func prettyTimeString() -> String {
        dateFormatter.dateFormat = "HH:mm"
        return dateFormatter.stringFromDate(self)
    }
    
    public func prettyDateAndTimeString() -> String {
        dateFormatter.dateFormat = "h:mm a 'on' MM/dd/yyyy"
        return dateFormatter.stringFromDate(self)
    }
    
    public class func year() -> String {
        let df = NSDateFormatter()
        df.timeZone = NSTimeZone(name: "UTC")
        df.dateFormat = "yyyy"
        return df.stringFromDate(NSDate())
    }
}

    
    
    public convenience init(string: String) {
        NSDate.dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
        let dateTemp = NSDate.dateFormatter.dateFromString(string)
        if let date = dateTemp {
            self.init(timeInterval: 0, sinceDate: date)
        } else {
