util: rewritten with tests added
git: Changes class reimplemented with tests