Switched to using pointers to allow for optional validation.