Tidied up GameObject's constructor and eliminated some redundancies