All complete except pass by reference version.