fix collection swap logic a bunch. seems to work now.