add support for delegate