still more kernel refactoring