I assume that the short answer to my question is that I did it wrong, but I would appreciate any insight on what specifically was bad about my implementation, and how I can