added complete class structure for the upstream