updated kernel interface and added edge class