added demo source code