enclude all the function we need