finished proxy and canvas implementation