added test for different timezones
Date timezones are now normalized
refactoring
refactoring
moved code into multiple files to prevent over-crowding