refactoring, moved ExtractDefinition and -builder