added fill and bounds; using checksum from stackoverflow