a good example of struct