instance method generation