Can you tell me the answers to those questions without checking the implementation? If i have to choose between checking the implementation and checking documentation i'm going to pick documentation. That I think IS a lesson worth teaching as a starting point for begginners. Yes you can look at the implementation, but when the application becomes large enough finding the implementation becomes more of a challenge than finding the documentation. I'm all for reinventing the wheel as a learning experience, but part of that experience for me also involves finding all the existing wheels and see what lessons there are to learn from them. In this case Moose is a good wheel too look into, hence sample code.