add test
fix extend
fix extend