implement different levels of time-lapsing