initial commit with project structure and demo code