added is_removed boolean for efficiency