some improvement

we could remove a base initializer if the base class
has default constructor