Large code revision

The API seems like v0.0.1 now (cleaner)
The interfaces are cleaner now as well
The overhead of using this API is less then v0.0.2 (I think)
I will write document later...