reorder initialisers to avoid compiler warning