updated with deletions