stopped recursion and gave error messages more git like behaviour