Very clever! It was difficult to predict what was going to happen after each join though, so a lot of the time I felt like I was just using trial and error.