This is a response for one of our apprentices who wanted to learn more about how structs work.
Part of this is a response and part of it a challenge. If you are only interested in the challenge clone the repo and run rake (more detailed instructions here).