Many-Body Methods For Ab-Initio Calculations