add support for multi-functions