Updated with canvas and button