Use tz aware datetimes, and more explicit use of datetime members