lifespan sets end_time instead of returning null