improve kernel interface