improved pointer canvas element