Rewrote the GameObject system