@yuhunglin it looks like there is quite some copy/pasting between the start_time and end_time, if there is a way to DRY this up, that would be great.
It's not necessary though, just would be nice.