use std::begin/std::end again