improve the flexiblity of mc_swap by reading more options from control