moved md5 deletion outside of puzzle components loop.
introducing 2D and 3D versions of format_md5 routine