added remove, detach, and event copying