remove old interface
Add kernel implementation