canvas implementation of wires, much cleaner