add onOpen(), onClose() callbacks