huge code refactoring
some dewarning
Merge branch 'streamer45'