* driver, app: new protocol

* new protocol specification that allows versioning (version 1)

* App: refactoring, version: 1.1