store intermediate data in objects