modified by smartGIT