Solving Second Order Differential Equations