 
 : byte-array>sha2 ( byte-array -- string )
     pad-initial-bytes
-    block-size get <sliced-groups>
+    sha2 get block-size>> <sliced-groups>
     [
         prepare-message-schedule
-        block-size get H get clone process-chunk
+        sha2 get [ block-size>> ] [ H>> clone ] bi process-chunk
     ] each
-    H get 4 seq>byte-array ;
+    sha2 get H>> 4 seq>byte-array ;
 
 PRIVATE>
 

: T1 ( W n H -- T1 )
    [
        [ swap nth ] keep
        K-256 nth +
    ] dip
    [ e swap slice3 ch w+ ]
    [ e swap nth S1-256 w+ ]

            [ T2 ]
            [ update-H ] tri 
        ] with each
    ] keep sha2 get H>> [ w+ ] 2map sha2 get (>>H) ;

: pad-initial-bytes ( string -- padded-string )
    dup [
