Refactoring and add DELETE