Uses Joda Time and various improvements