make "predecessor" attribute internal