Tessellation by Translation: Constructing a Parallelogram Grid with Vectors

Tessellation by Translation: Constructing a Parallelogram Grid with Vectors
Loading the math board and drawing, please wait…
2014-03-30 05:26
This example demonstrates how to create a plane tessellation by translating a base polygon (a parallelogram) along two directions, producing a seamless grid that covers the plane. The core mathematical concepts involved are translation transformations, vectors, parallelograms, and the logic of tessellation. Construction highlights: using the Polygon command to create the base polygon poly1, defining vectors u and v from points, applying the Translate command to shift poly1 along u and v to generate translated copies (e.g., stroke1', stroke2'), and using AttachCopyToView to fix the view. Points and vectors are used to control the translation directions and distances. This example is suitable for middle or high school geometry classes or enrichment activities, helping students visualize how translation and vectors work together to create repeating patterns and understand the geometric principles behind tiling.

GeoGebra Commands & Parameters

  1. Polygon(A, B, 4) → poly1, a, b, c, d, C, D
  2. AttachCopyToView(PolyLine[(3.7, -3.7600000000000002), (3.62, -3.7600000000000002), (3.54, -3.7800000000000002), (3.48, -3.8200000000000003), (3.42, -3.86), (3.36, -3.9), (3.3000000000000003, -3.94), (3.24, -3.98), (3.18, -4.04), (3.1, -4.1), (3.02, -4.16), (2.96, -4.18), (2.84, -4.24), (2.7800000000000002, -4.26), (2.7, -4.32), (2.64, -4.34), (2.56, -4.4), (2.48, -4.42), (2.4, -4.46), (2.32, -4.48), (2.2600000000000002, -4.5200000000000005), (2.2, -4.58), (2.14, -4.62), (2.08, -4.68), (2.02, -4.72), (2.02, -4.64), (2.02, -4.5600000000000005), (2.02, -4.48), (2.02, -4.38), (2.02, -4.3), (2.02, -4.22), (2.08, -4.18), (2.14, -4.16), (2.2, -4.14), (2.2600000000000002, -4.12), (2.32, -4.08), (2.38, -4.0600000000000005), (2.36, -4), (2.3000000000000003, -3.98), (2.24, -3.94), (2.16, -3.9), (2.1, -3.88), (2.04, -3.8200000000000003), (1.98, -3.7800000000000002), (1.92, -3.7600000000000002), (1.86, -3.74), (1.82, -3.68), (1.76, -3.64), (1.74, -3.58), (1.8, -3.54), (1.86, -3.48), (1.92, -3.46), (1.98, -3.42), (2.06, -3.38), (2.12, -3.3200000000000003), (2.18, -3.3000000000000003), (2.24, -3.2600000000000002), (2.32, -3.2600000000000002), (2.38, -3.22), (2.44, -3.18), (2.5, -3.16), (2.56, -3.1), (2.62, -3.08), (2.68, -3.06), (2.6, -3.06), (2.5, -3.06), (2.4, -3.06), (2.3000000000000003, -3.06), (2.22, -3.06), (2.14, -3.06), (2.06, -3.06), (1.98, -3.06), (1.9000000000000001, -3.06), (1.82, -3.02), (1.74, -3), (1.6400000000000001, -3), (1.58, -2.98), (1.5, -2.98), (1.42, -2.98), (1.34, -2.98), (1.26, -2.98), (1.18, -3), (1.1, -3), (1.02, -3), (0.9400000000000001, -3), (0.86, -3), (0.78, -3), (0.7000000000000001, -3), (0.64, -2.98), (0.56, -2.98), (0.48, -2.98), (0.42, -2.96), (0.36, -3), (0.3, -3.02), (0.22, -3.02), (0.16, -3.04), (0.1, -3.06), (0.02, -3.08), (-0.06, -3.08), (-0.14, -3.08), (-0.22, -3.08), (-0.22, -3.16), (-0.22, -3.24), (-0.24, -3.3000000000000003), (-0.26, -3.36), (-0.32, -3.4), (-0.38, -3.42), (-0.44, -3.46), (-0.5, -3.5), (-0.56, -3.52), (-0.62, -3.54), (-0.68, -3.56), (-0.74, -3.58), (-0.8, -3.6), (-0.8, -3.68), (-0.76, -3.74), true], 1, (-4.3, -7.96), (23.38, 6.3), (0, 713), (1384, 0)) → stroke1
  3. Point(a) → E
  4. Point(c) → F
  5. Vector(E, F) → u
  6. Translate(stroke1, u) → stroke1'
  7. AttachCopyToView(PolyLine[(-0.78, -3.7600000000000002), (-0.86, -3.7600000000000002), (-0.92, -3.7800000000000002), (-0.98, -3.8000000000000003), (-1.06, -3.8200000000000003), (-1.12, -3.84), (-1.12, -3.74), (-1.12, -3.62), (-1.1, -3.54), (-1.06, -3.48), (-1, -3.42), (-0.9400000000000001, -3.38), (-0.88, -3.36), (-0.8200000000000001, -3.3200000000000003), (-0.76, -3.2800000000000002), (-0.74, -3.22), (-0.74, -3.14), (-0.74, -3.02), (-0.74, -2.94), (-0.74, -2.84), (-0.74, -2.7600000000000002), (-0.7000000000000001, -2.7), (-0.64, -2.68), (-0.56, -2.68), (-0.48, -2.64), (-0.4, -2.62), (-0.34, -2.6), (-0.28, -2.56), (-0.22, -2.52), (-0.16, -2.5), (-0.1, -2.46), (-0.04, -2.42), (0.02, -2.38), (0.06, -2.3000000000000003), (0.06, -2.22), (0.06, -2.14), (0.04, -2.08), (0.02, -2.02), (0.02, -1.94), (0.02, -1.86), (-0.06, -1.86), (-0.14, -1.86), (-0.2, -1.82), (-0.28, -1.82), (-0.36, -1.82), (-0.44, -1.82), (-0.5, -1.8), (-0.58, -1.78), (-0.64, -1.76), (-0.62, -1.82), (-0.58, -1.9000000000000001), (-0.52, -1.96), (-0.46, -2), (-0.42, -2.06), (-0.36, -2.1), (-0.34, -2.16), (-0.28, -2.18), (-0.36, -2.18), (-0.44, -2.18), (-0.52, -2.2), (-0.6, -2.22), (-0.68, -2.22), (-0.74, -2.2), (-0.8, -2.14), (-0.8200000000000001, -2.08), (-0.84, -2.02), (-0.88, -1.96), (-0.9, -1.9000000000000001), (-0.9400000000000001, -1.84), (-0.96, -1.76), (-0.98, -1.7), (-1, -1.6400000000000001), (-1.04, -1.58), (-1.06, -1.52), (-1.08, -1.46), (-1.02, -1.44), (-0.9400000000000001, -1.42), (-0.88, -1.4000000000000001), (-0.8200000000000001, -1.3800000000000001), (-0.74, -1.36), (-0.66, -1.34), (-0.6, -1.32), (-0.54, -1.3), (-0.48, -1.28), (-0.4, -1.28), (-0.32, -1.28), (-0.24, -1.28), (-0.16, -1.28), (-0.1, -1.26), (-0.04, -1.24), (0.04, -1.24), (0.1, -1.22), (0.12, -1.16), (0.14, -1.08), (0.2, -1), (0.24, -0.92), (0.28, -0.86), (0.3, -0.8), (0.34, -0.74), (0.38, -0.68), (0.42, -0.62), (0.48, -0.56), (0.54, -0.5), (0.6, -0.46), (0.66, -0.4), (0.72, -0.36), (0.78, -0.32), (0.8, -0.26), (0.8200000000000001, -0.2), (0.86, -0.14), (0.9, -0.08), (0.92, -0.02), (0.92, 0.06), (0.9, 0.14), (0.86, 0.2), (0.8200000000000001, 0.26), (0.8, 0.32), (0.84, 0.4), (0.88, 0.46), (0.9400000000000001, 0.54), (0.96, 0.6), (1.02, 0.66), (1.02, 0.74), (1.06, 0.8), (1, 0.84), (0.9, 0.8200000000000001), (0.8200000000000001, 0.8200000000000001), (0.74, 0.8200000000000001), (0.66, 0.8200000000000001), (0.58, 0.8200000000000001), (0.5, 0.8200000000000001), (0.42, 0.8200000000000001), (0.34, 0.8200000000000001), (0.26, 0.8200000000000001), (0.2, 0.8), (0.14, 0.74), (0.08, 0.7000000000000001), (0.04, 0.64), (-0.02, 0.62), (-0.08, 0.58), (-0.14, 0.54), (-0.2, 0.48), (-0.26, 0.44), (-0.34, 0.44), (-0.42, 0.44), (-0.48, 0.46), (-0.54, 0.5), (-0.62, 0.5), true], 1, (-4.3, -7.96), (23.38, 6.3), (0, 713), (1384, 0)) → stroke2
  8. Point(d) → G
  9. Point(b) → H
  10. Vector(G, H) → v
  11. Translate(stroke2, v) → stroke2'
  12. Point(stroke1') → I
  13. Point(stroke1') → J
  14. Point(stroke1') → K
  15. Point(stroke1') → L
  16. Point(stroke1') → M
  17. Point(stroke1') → N
  18. Point(stroke1') → O
  19. Point(stroke1') → P
  20. Point(stroke1') → Q
  21. Point(stroke1') → R
  22. Point(stroke1') → S
  23. Point(stroke1') → T
  24. Point(stroke2') → U
  25. Point(stroke2') → V
  26. Point(stroke2') → W
  27. Point(stroke2') → Z
  28. Point(stroke2') → A_1
  29. Point(stroke2') → B_1
  30. Point(stroke2') → C_1
  31. Point(stroke2') → D_1
  32. Point(stroke2') → E_1
  33. Point(stroke2') → F_1
  34. Point(stroke2') → G_1
  35. Point(stroke2') → I_1
  36. Point(stroke2') → J_1
  37. Point(stroke2') → K_1
  38. Point(stroke2') → L_1
  39. Point(stroke1) → M_1
  40. Point(stroke1) → N_1
  41. Point(stroke1) → O_1
  42. Point(stroke1) → P_1
  43. Point(stroke1) → Q_1
  44. Point(stroke1) → R_1
  45. Point(stroke1) → S_1
  46. Point(stroke1) → T_1
  47. Point(stroke1) → U_1
  48. Point(stroke1) → V_1
  49. Point(stroke2) → W_1
  50. Point(stroke2) → Z_1
  51. Point(stroke2) → A_2
  52. Point(stroke2) → B_2
  53. Point(stroke2) → C_2
  54. Point(stroke2) → D_2
  55. Point(stroke2) → E_2
  56. Point(stroke2) → F_2
  57. Point(stroke2) → G_2
  58. Point(stroke2) → H_2
  59. Point(stroke2) → I_2
  60. Point(stroke2) → J_2
  61. Point(stroke2) → K_2
  62. Point(stroke2) → L_2
  63. Point(stroke2) → M_2
  64. Point(stroke2) → N_2
  65. Polygon(D, I, R, S, T, C, U, V, W, Z, A_1, B_1, J, C_1, D_1, E_1, F_1, G_1, H_1, I_1, J_1, K_1, L_1, K, B, M_1, N_1, O_1, P_1, Q_1, R_1, S_1, T_1, U_1, L, V_1, A, W_1, Z_1, A_2, B_2, C_2, D_2, E_2, F_2, M, G_2, H_2, I_2, J_2, K_2, F, L_2, M_2, N_2, N, O, P, Q) → poly2, d_1, q, r, s, t, c_1, u_1, v_1, w, z, a_1, i, b_1, c_2, d_2, e_1, f_1, g_1, h_1, i_1, j_1, k_1, j, l_1, b_2, m_1, n_1, o_1, p_1, q_1, r_1, s_1, t_1, k, u_2, v_2, a_2, w_1, z_1, a_3, b_3, c_3, d_3, e_2, l, f_2, g_2, h_2, i_2, j_2, k_2, f, l_2, m_2, n_2, m, n, o, p
  66. Vector(W_1, I) → e
  67. Translate(stroke1, e) → stroke1'_1
  68. Translate(stroke1', e) → stroke1''
  69. Translate(stroke2, e) → stroke2'_1
  70. Translate(stroke2', e) → stroke2''
  71. Translate(D, e) → D'
  72. Translate(I, e) → I'
  73. Translate(J, e) → J'
  74. Translate(K, e) → K'
  75. Translate(L, e) → L'
  76. Translate(M, e) → M'
  77. Translate(N, e) → N'
  78. Translate(O, e) → O'
  79. Translate(P, e) → P'
  80. Translate(Q, e) → Q'
  81. Translate(R, e) → R'
  82. Translate(S, e) → S'
  83. Translate(T, e) → T'
  84. Translate(C, e) → C'
  85. Translate(U, e) → U'
  86. Translate(V, e) → V'
  87. Translate(W, e) → W'
  88. Translate(Z, e) → Z'
  89. Translate(A_1, e) → O_2
  90. Translate(B_1, e) → P_2
  91. Translate(C_1, e) → Q_2
  92. Translate(D_1, e) → R_2
  93. Translate(E_1, e) → S_2
  94. Translate(F_1, e) → T_2
  95. Translate(G_1, e) → U_2
  96. Translate(H_1, e) → V_2
  97. Translate(I_1, e) → W_2
  98. Translate(J_1, e) → Z_2
  99. Translate(K_1, e) → A_3
  100. Translate(L_1, e) → B_3
  101. Translate(B, e) → B'
  102. Translate(M_1, e) → C_3
  103. Translate(N_1, e) → D_3
  104. Translate(O_1, e) → E_3
  105. Translate(P_1, e) → F_3
  106. Translate(Q_1, e) → G_3
  107. Translate(R_1, e) → H_3
  108. Translate(S_1, e) → I_3
  109. Translate(T_1, e) → J_3
  110. Translate(U_1, e) → K_3
  111. Translate(V_1, e) → L_3
  112. Translate(A, e) → A'
  113. Translate(W_1, e) → M_3
  114. Translate(Z_1, e) → N_3
  115. Translate(A_2, e) → O_3
  116. Translate(B_2, e) → P_3
  117. Translate(C_2, e) → Q_3
  118. Translate(D_2, e) → R_3
  119. Translate(E_2, e) → S_3
  120. Translate(F_2, e) → T_3
  121. Translate(G_2, e) → U_3
  122. Translate(H_2, e) → V_3
  123. Translate(I_2, e) → W_3
  124. Translate(J_2, e) → Z_3
  125. Translate(K_2, e) → A_4
  126. Translate(F, e) → F'
  127. Translate(L_2, e) → B_4
  128. Translate(M_2, e) → C_4
  129. Translate(N_2, e) → D_4
  130. Polygon(D', I', R', S', T', C', U', V', W', Z', O_2, P_2, J', Q_2, R_2, S_2, T_2, U_2, V_2, W_2, Z_2, A_3, B_3, K', B', C_3, D_3, E_3, F_3, G_3, H_3, I_3, J_3, K_3, L', L_3, A', M_3, N_3, O_3, P_3, Q_3, R_3, S_3, T_3, M', U_3, V_3, W_3, Z_3, A_4, F', B_4, C_4, D_4, N', O', P', Q') → poly2', d', q', r', s', t', c', u', v', w', z', o_2, i', p_2, q_2, r_2, s_2, t_2, u_3, v_3, w_2, z_2, a_4, j', b_4, b', c_4, d_4, e_3, f_3, g_3, h_3, i_3, j_3, k', k_3, l_3, a', m_3, n_3, o_3, p_3, q_3, r_3, s_3, l', t_3, u_4, v_4, w_3, z_3, a_5, f', b_5, c_5, d_5, m', n', o', p'
  131. Translate(E, e) → E'
  132. Translate(G, e) → G'
  133. Translate(H, e) → H'
  134. AttachCopyToView(PolyLine[(0, 5.5600000000000005), (0.08, 5.5600000000000005), (0.14, 5.6000000000000005), (0.2, 5.62), (0.26, 5.66), (0.32, 5.7), (0.38, 5.72), (0.46, 5.72), (NaN, NaN), (0.04, 5.58), (0.12, 5.6000000000000005), (0.18, 5.64), (0.22, 5.7), (0.28, 5.72), (0.34, 5.74), (0.42, 5.74), (0.5, 5.74), (0.58, 5.74), (NaN, NaN), (0.2, 5.5600000000000005), (0.26, 5.54), (0.32, 5.5600000000000005), (0.34, 5.62), (0.34, 5.7), (NaN, NaN), (-0.32, 5.3), (-0.24, 5.32), (-0.18, 5.34), (-0.16, 5.28), (-0.22, 5.24), (NaN, NaN), (-0.12, 5.1000000000000005), (-0.1, 5.16), (-0.08, 5.24), (-0.04, 5.3), (0.02, 5.32), (0.08, 5.36), (0.16, 5.36), (NaN, NaN), (2.4, 3.9), (2.42, 3.96), (2.46, 4.0200000000000005), (2.52, 4.0600000000000005), (2.58, 4.12), (2.66, 4.16), (2.72, 4.22), (2.7800000000000002, 4.26), (2.84, 4.28), (2.9, 4.32), (2.96, 4.34), (3.02, 4.36), (3.1, 4.38), (3.16, 4.42), (3.24, 4.46), (3.2600000000000002, 4.5200000000000005), (3.3000000000000003, 4.58), (3.36, 4.62), (3.44, 4.7), (3.5, 4.74), (3.56, 4.78), (3.62, 4.8), (3.68, 4.82), (3.74, 4.86), (3.8200000000000003, 4.86), (3.92, 4.86), (4, 4.86), (4.08, 4.86), (4.16, 4.86), (4.24, 4.86), (4.32, 4.86), (4.4, 4.86), (4.48, 4.86), (4.54, 4.9), (4.58, 4.96), (4.64, 5.04), (4.68, 5.1000000000000005), (4.72, 5.16), (4.78, 5.22), (4.82, 5.28), (4.88, 5.3), (NaN, NaN), (3.66, 4.78), (3.74, 4.78), (3.8200000000000003, 4.78), (3.92, 4.78), (3.98, 4.76), (4.04, 4.74), (4.1, 4.72), (4.16, 4.7), (4.22, 4.68), (4.3, 4.68), (4.4, 4.68), (4.48, 4.66), (4.54, 4.64), (4.62, 4.62), (4.68, 4.6000000000000005), (4.74, 4.58), (4.82, 4.5600000000000005), (4.88, 4.5), (4.9, 4.44), (4.94, 4.38), (4.96, 4.32), (5.0200000000000005, 4.26), (5.08, 4.22), (5.14, 4.18), (NaN, NaN), (3.6, 4.78), (3.64, 4.68), (3.66, 4.58), (3.68, 4.5200000000000005), (3.7, 4.46), (3.72, 4.4), (3.7600000000000002, 4.34), (3.8000000000000003, 4.28), (3.84, 4.2), (3.9, 4.12), (3.94, 4.04), (4, 3.98), (4.0600000000000005, 3.92), (4.1, 3.84), (4.14, 3.7600000000000002), (4.2, 3.72), (4.26, 3.68), (4.3, 3.62), (4.34, 3.56), (4.4, 3.52), (4.44, 3.46), (4.5, 3.42), (4.5600000000000005, 3.4), (4.58, 3.34), (NaN, NaN), (3.52, 4.76), (3.5, 4.7), (3.5, 4.6000000000000005), (3.48, 4.5200000000000005), (3.46, 4.44), (3.46, 4.36), (3.46, 4.28), (3.46, 4.2), (3.46, 4.12), (3.46, 4.04), (3.46, 3.96), (3.46, 3.88), (3.46, 3.8000000000000003), (3.46, 3.72), (3.46, 3.64), (3.46, 3.56), (3.48, 3.5), (3.5, 3.44), (3.52, 3.38), (3.56, 3.3200000000000003), (3.58, 3.24), (3.58, 3.16), (NaN, NaN), (2.4, 3.96), (2.48, 3.96), (2.56, 3.96), (2.66, 3.96), (2.72, 3.92), (2.7800000000000002, 3.86), (2.84, 3.8200000000000003), (2.86, 3.7600000000000002), (2.92, 3.72), (2.98, 3.66), (3.02, 3.6), (3.04, 3.54), (3.1, 3.46), (3.12, 3.4), (3.16, 3.34), (3.22, 3.3000000000000003), (3.2800000000000002, 3.24), (3.34, 3.2), (3.4, 3.16), (3.46, 3.12), (3.52, 3.08), (3.56, 3.02), (3.62, 3), (NaN, NaN), (-0.1, 1.04), (-0.04, 1.06), (0.02, 1.08), (0.08, 1.1), (0.14, 1.1400000000000001), (0.2, 1.16), (0.28, 1.16), (NaN, NaN), (0.02, 1.02), (0.1, 1.04), (0.16, 1.08), (NaN, NaN), (-0.52, 0.62), (-0.46, 0.66), (NaN, NaN), (2.1, -0.66), (2.12, -0.56), (2.18, -0.48), (2.22, -0.4), (2.2800000000000002, -0.34), (2.36, -0.3), (2.4, -0.24), (2.48, -0.18), (2.56, -0.12), (2.62, -0.08), (2.68, -0.06), (2.7600000000000002, -0.06), (2.84, -0.06), (2.92, -0.06), (3, -0.06), (3.06, -0.04), (3.14, 0.02), (3.2, 0.04), (3.2600000000000002, 0.06), (3.3200000000000003, 0.1), (3.4, 0.14), (3.48, 0.14), (3.56, 0.14), (3.64, 0.16), (3.7, 0.22), (3.7800000000000002, 0.22), (3.84, 0.24), (3.92, 0.24), (4, 0.24), (4.0600000000000005, 0.26), (4.12, 0.3), (4.18, 0.32), (4.24, 0.34), (4.28, 0.4), (4.34, 0.46), (4.38, 0.52), (4.44, 0.58), (4.48, 0.64), (NaN, NaN), (3.7, 0.22), (3.7800000000000002, 0.22), (3.86, 0.22), (3.94, 0.22), (4.04, 0.22), (4.1, 0.2), (4.18, 0.2), (4.26, 0.18), (4.32, 0.16), (4.4, 0.14), (4.46, 0.12), (4.5200000000000005, 0.1), (4.58, 0.06), (4.64, 0), (4.7, -0.02), (4.76, -0.06), (4.82, -0.08), (4.9, -0.08), (4.96, -0.1), (5.0200000000000005, -0.12), (5.1000000000000005, -0.12), (5.18, -0.12), (NaN, NaN), (3.74, 0.22), (3.74, 0.14), (3.7800000000000002, 0.08), (3.8000000000000003, 0.02), (3.84, -0.04), (3.86, -0.1), (3.9, -0.16), (3.92, -0.22), (3.94, -0.28), (3.96, -0.34), (4, -0.4), (4.0600000000000005, -0.42), (4.08, -0.5), (4.12, -0.56), (4.14, -0.62), (4.16, -0.68), (4.18, -0.74), (4.22, -0.8), (4.24, -0.86), (4.26, -0.9400000000000001), (4.28, -1), (4.28, -1.08), (4.3, -1.1400000000000001), (4.32, -1.2), (4.34, -1.26), (NaN, NaN), (3.68, 0.24), (3.68, 0.12), (3.66, 0.02), (3.64, -0.06), (3.62, -0.16), (3.56, -0.28), (3.54, -0.34), (3.52, -0.4), (3.5, -0.46), (3.48, -0.56), (3.44, -0.64), (3.42, -0.7000000000000001), (3.42, -0.8), (3.4, -0.88), (3.4, -0.96), (3.4, -1.04), (3.38, -1.12), (3.36, -1.22), (3.36, -1.32), (3.36, -1.4000000000000001), (3.34, -1.48), (NaN, NaN), (2.12, -0.58), (2.22, -0.58), (2.2800000000000002, -0.6), (2.36, -0.62), (2.42, -0.66), (2.5, -0.7000000000000001), (2.56, -0.74), (2.62, -0.78), (2.68, -0.8200000000000001), (2.74, -0.86), (2.8000000000000003, -0.92), (2.84, -0.98), (2.9, -1.02), (2.96, -1.08), (3.04, -1.08), (3.1, -1.1400000000000001), (3.12, -1.2), (3.16, -1.26), (3.18, -1.32), (3.24, -1.36), (3.2600000000000002, -1.42), (3.3000000000000003, -1.48), true], 1, (-4.3, -7.96), (23.38, 6.3), (0, 713), (1384, 0)) → stroke3

AI Drawing Prompt Reference

Create a plane tessellation using a parallelogram as the base tile. Define two translation vectors along the sides of the parallelogram. Translate the parallelogram repeatedly along these vectors to generate adjacent copies, continuing the process to cover the entire plane seamlessly. Add points on the translated shapes to indicate corresponding positions under translation. The final image shows a regular, continuous grid pattern demonstrating how translation and vectors create a repeating tiling.
The prompt above was compiled from the original drawing commands and is for reference only.