first 3 demos, working mostly