hmm seems like this could be factored differently but maybe i need to read more to understand the way `CheckID` is being used here.