refactor reference