- add support for branches
- refactor logging