no longer need struct