Updated constructors, procedures and added body.