properly count/handle base node on failure
do not allow object to be moved into itself
add reasons