while better from for