add closure & scope