use std.algorithm.swap