added support variable box sizes & load puzzle from string or file via iterable, with some ability to detect errors on input