loop is more standard these days