I am a little confused on why we need teardown_remove_first_vm() & teardown_remove_from_provider() & remove_vm()...   they seem redundant.