refactored how to acquire native canvas methods