rework the instantiation to take an index

This way we can call the correct tear down routine without
introducing knowledge about what /dev node the fs lives on
to the upper functions.