delete initial implementation