-added intelligent updating location, previous method would not
add/remove events as was