I think this one works how it should
I think this is working
fixing swap and merge