added closure type interface