upgraded duct to fix the extend method