implemented protocol base
minors
added temporary (and probably lots of bugs) optional class
removed constructor
added project files, some other files
added generator
added some files  needed by generator