work through test-first free n flop