modify unit testing
add new features