3rd demo, small refactor