Rewrite all code

New 2.0 Beta version!