necessary building blocks