added demo and 'tests'