optimize add behavior