I think this works, but I don't know yet

Modified