add close fn