function transformer_block(x, attention_layer, feed_forward):
   attended = multi_head_attention(x, attention_layer)

   x = layer_norm(x + attended) # residual connection, then normalize
   transformed = feed_forward(x)
   x = layer_norm(x + transformed) # residual connection, then normalize
   return x
