lib reorganization
start unittest
private method
add function
add self
reuse customization