simplify smc_do