add delete, with tests, for both backends; clean up view code a little