use array for proper order