First version

Tried to fix the fourth option with swap type instructions.