added mainloop canvas things