implement outparameters