fix order of init
fix clang warning: <...> hides overloaded virtual function