Renamed delegate to ifunction, added ifunction operator()