Added ability to create objects with behaviors, and made GameObject final to avoid accidental errors.