append some function and support and fix some bug