(^) unisgned char => byte (also char=>byte, where wrong)