add more tests
extract soft delete