begin of struct passing