added some canvas code we'll probably never end up using