implement delete, and switch assignment