Reverted back to raw pointers, object deletion (kinda), a solid get component func