Shimmed stuff in lib
Redid puzzlecanvas to be more consistent
Added summaries for all nontrivial functions