this is pretty close to our demo version