Add datetime support, reformat code, separate prepare(dict)