building blocks for gradient constructed correctly