added TimeFormatter and tests