rearrange
add google test