hidden arguments and hidden returns applied