No obvious reason why the specialized doDoDelete in AbstractProject could not be pulled up into AbstractItem.