Rewriten all the code & update to 0.8