implemented envelope canvas