implement some case