dynamic complete