struct and interfaces laerning