fix some design problems
fix destroy
fixed pull