add canvas support