added demo project, and initial implementation