obey C++ naming convention: "_iterator", not "_iter"
typedef for type named twice