using dateModel as a service (not a factory) to avoid update issues // moving all handling of date differences into dateModel