fix Package.decode bug & optimize