added nonEmptyStrings and restricted ranks to defined set