refactoring: use jodatime as range type