used initialization lists to eliminate warnings by -Weffc++