add extend method
update test