add small same square detection
cleanup and update puzzle.js
update LICENCE date