Should probably specify the output format and the ordering shenanigans with nil