avoids using clone() because event handlers get lost