renamed datetime_* to date_and_time_* to avoid possible clashes; some shaping of the code