refactoring create