simplify
modify by review comments