refactor preliminary.h
update header
add unittest code in use of gtest