Let me try and clarify...
Say you have a shopping cart... categories on the top and products in below, say in rows of 3 products per row kind of like:
Cat1 | Cat2 | Cat3 ProductSearch [.................]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Product1 (addtocart) Product2 (addtocart) Product3 (addtocart)
Product4 (addtocart) Product5 (addtocart) Product6 (addtocart)
Product7 (addtocart) Product8 (addtocart) Product9 (addtocart)
display 0-100, 200, 300
[ < previous ] ... [ next > ]
The way we are rendering this is the product controller (basially the whole area covered in green) call the product model to find all the products
then loops over them instatiating the ProductController for each product which gets the data for that specific product in the init function
Hopefully this clears things up a bit in my question otherwise i can elaborate further