prototype of struct