split StringIdModel out of KeyNameModel