improved adding events