add some function and head