Add a lot of functions, comments and more demo