refactor to remove redundant objects referencing the same data