Support to new driver

It should be compatible with previous versions. Tell me if you think that I've coded something the bad way
If you are rewriting this, please also rewrite comments, I'd like them to be 

```
// my comment
```

the space there is intentional and important.