Sachverhalt: Sachverhalt: A. X._ war Gründungsmitglied und Präsident des Vereins A._. Der Vereinszweck bestand gemäss Handelsregisterauszug vom 5. Juni 1997 im Wesentlichen in der Förderung des legalen Anbaus, Absatzes und der Verarbeitung von Hanf zur legalen und sinnvollen Nutzung der Hanfpflanze. Unter anderem stellte der Verein aus selbst angebautem sowie zugekauftem Hanf bzw. Hanfkraut zum Verkauf bestimmte "Duftsäcklein" und "Hanfharzmünzen" her. Der THC-Gehalt des Marihuana (Duftsäcklein) lag bei einer ersten Probe zwischen 0,4 % und 6,9 %, derjenige des Haschisch (Hanfharzmünzen) zwischen 1 % und 13,8 %. Eine zweite Probe ergab THC-Werte zwischen 0,3 % und 13,5 % (Marihuana) sowie solche zwischen 2,5 % und 25 % (Haschisch). A. X._ war Gründungsmitglied und Präsident des Vereins A._. Der Vereinszweck bestand gemäss Handelsregisterauszug vom 5. Juni 1997 im Wesentlichen in der Förderung des legalen Anbaus, Absatzes und der Verarbeitung von Hanf zur legalen und sinnvollen Nutzung der Hanfpflanze. Unter anderem stellte der Verein aus selbst angebautem sowie zugekauftem Hanf bzw. Hanfkraut zum Verkauf bestimmte "Duftsäcklein" und "Hanfharzmünzen" her. Der THC-Gehalt des Marihuana (Duftsäcklein) lag bei einer ersten Probe zwischen 0,4 % und 6,9 %, derjenige des Haschisch (Hanfharzmünzen) zwischen 1 % und 13,8 %. Eine zweite Probe ergab THC-Werte zwischen 0,3 % und 13,5 % (Marihuana) sowie solche zwischen 2,5 % und 25 % (Haschisch). B. Das Bezirksgericht Winterthur sprach X._ am 26. September 2002 der Widerhandlung gegen das Betäubungsmittelgesetz schuldig und verurteilte ihn zu einer Gefängnisstrafe von 15 Monaten als Zusatzstrafe zum Urteil des Obergerichts des Kantons Zürich vom 22. Dezember 1999. Der Vollzug der Freiheitsstrafe wurde nicht aufgeschoben. Auf Berufung von X._ hin bestätigte das Obergericht des Kantons Zürich am 2. Juni 2003 den erstinstanzlichen Schuldspruch, sprach die Strafe von 15 Monaten Gefängnis jedoch nicht als Zusatzstrafe aus. Auf Berufung von X._ hin bestätigte das Obergericht des Kantons Zürich am 2. Juni 2003 den erstinstanzlichen Schuldspruch, sprach die Strafe von 15 Monaten Gefängnis jedoch nicht als Zusatzstrafe aus. C. Am 31. März 2004 wies das Kassationsgericht des Kantons Zürich die kantonale Nichtigkeitsbeschwerde von X._ ab. C. Am 31. März 2004 wies das Kassationsgericht des Kantons Zürich die kantonale Nichtigkeitsbeschwerde von X._ ab. D. X._ führt staatsrechtliche Beschwerde gegen den Beschluss des Kassationsgerichts und beantragt, der Beschluss des Kassationsgerichts sei aufzuheben und die Sache zur Neubeurteilung an die Vorinstanz zurückzuweisen. Er erhebt ferner eidgenössische Nichtigkeitsbeschwerde gegen das Urteil des Obergerichts mit dem Antrag, das Urteil des Obergerichts sei aufzuheben und die Sache zur neuen Entscheidung an die Vorinstanz zurückzuweisen. Eventuell sei das vorinstanzliche Strafmass erheblich zu reduzieren. Das Obergericht äussert sich in seinen Gegenbemerkungen zur Nichtigkeitsbeschwerde, ohne einen ausdrücklichen Antrag zu stellen. Das Kassationsgericht verzichtet auf eine Stellungnahme zur staatsrechtlichen Beschwerde und die Staatsanwaltschaft ersucht um deren Abweisung. Das Obergericht äussert sich in seinen Gegenbemerkungen zur Nichtigkeitsbeschwerde, ohne einen ausdrücklichen Antrag zu stellen. Das Kassationsgericht verzichtet auf eine Stellungnahme zur staatsrechtlichen Beschwerde und die Staatsanwaltschaft ersucht um deren Abweisung. E. Der Präsident des Kassationshofs erteilte der staatsrechtlichen Beschwerde am 25. Mai 2004 superprovisorisch die aufschiebende Wirkung.