updated the demo. changed the draw method to pass the contexts and wrote more tests