invoke closure