refactored crud methods