refactor directory
add lib
update test
update test