some refactoring create method