initial commit
first demo
updates, refactoring