added canvas support