fixed order of initialization