added possible kernel implementation