implement dynamic path