add elemental and tests