Want stack/unstack to not discard names. Should be careful to raise an exception when there are duplicate names and the level name is used