seperate kernel and plugin interface