Smart pointers big modification

From this moment on, the kernel provides smart pointers to the user but stores and makes information transfer by using pointers. The code compiles and runs without any memory leak.