more updated with duration