some coding standard
named exceptions, better api for creating tags, branches and commits