now supports add/remove not that performant