abstract out duration