Functional except for delete(), which still needs implementation.