refactored git class