POOMA (Parallel Object Oriented Methods and Applications) is a C++ framework for developing portable parallel scientific applications. In order to present a high level of abstraction without sacrificing performance, POOMA depends heavily on generic programming techniques in general, and expression templates in particular (in the form of PETE, the Portable Expression Template Engine). The next version of POOMA, currently under development, introduces the concept of an Engine that is responsible for managing the storage of data and for mapping sub-domains to subsets of the Engine's values. These "Views" are also managed by Engines, possibly of a different type. An Array class, templated on an Engine, has been introduced. This class essentially provides a common user-interface for all Engines (including "View" Engines), and will serve as a basis for implementing the Field, ParticleAttribute, and other data-parallel classes. I present an overview of the current PETE, and discuss the new Engine-based Arrays, the implications that they have on using PETE, and extensions that have been made to PETE to support this new design.