make swap-state multi airity
add get-props