Merged with newer, cleaned up code, fixed the checksum error