refactored line, circle, rectangle .draw() and .preview()