demo with tests