broke time formatter out into a service factory