GameObject uses unique_ptr for components