improved hardware independece. Kernel is not 100% portable. I'll fix that later