time update + efficient code