Thanks to visit codestin.com Credit goes to github.com
fix some lock-taking cases and add more unit tests
wip: change URL / module name