refactoring for 4.3.0 kernel