separate out timezone functions, custom parsing