This method is waaay too long/complex. I think the aggregate asset could be an object on its own.