automatically unbind events on remove