simplified canvas and reactor because setting color, stroke, width doesn't need to be done separately