add test case
add test case
add test case
refine shortcut function
add test case
add test case
add test case