use of & seems strange here; substr() is returning by value?