integration refactoring

final