add onClose callback