Foundations of Differential Geometry