add test and implementation
add test and implementation