more elegant ordering