refactoring in createImplementation method