Connected some lose ends between components and systems
Converted the entire project to use raw pointers instead of smart pointers. Also implemented proper memory managment through virtual destructors.