rename this thing
try to split up files as much as possible, need to leave some table stuff in kernel.c for it to properly execute