Adding options for branch, tag, commit
implementing some different reading / writing modes