implement incremental add/remove