Still not sure why we have to do this all over the place. Why can't the regex just be performed inside the data model's initialization method? Then we will have access to all the parts we need without having to regex match them several times.