add unittest
 .
 .