fleshing out kernel