add closure struct