add duration
fix overflow