refactor to support SA and crc ok