процедурные переменные

У меня есть обьект, который работает с процедурной переменной.
Только иногда приходится работать не только с обычными функциями, а еще с функциями, которые являются методом какого-нибудь обьекта.
Но такая функция, хоть и имеет такой же список параметров, является другим типом процедурной переменной, т.е. получается, что для того, чтобы работать ещё и с такими функциями, мне надо написать еще один такой же точно обьект, только для работы с процедурной переменной этого типа. Т.е. абсолютно одинаковый код увеличивается в два раза. Это можно как-нибудь обойти?
Только иногда приходится работать не только с обычными функциями, а еще с функциями, которые являются методом какого-нибудь обьекта.
Но такая функция, хоть и имеет такой же список параметров, является другим типом процедурной переменной, т.е. получается, что для того, чтобы работать ещё и с такими функциями, мне надо написать еще один такой же точно обьект, только для работы с процедурной переменной этого типа. Т.е. абсолютно одинаковый код увеличивается в два раза. Это можно как-нибудь обойти?