added dynamic canvas