lupton implemented on canvas