This is pretty much saving one line in every buildX/Y/Z method. This way I can just call newWorldObject<Ship>() otherwise I would have to call Ship* ship = new Ship(); setup(ship); Little saving, but as both solutions are correct the shorter one is preferable?