minor optimisations
element type fixes
clarify use of element types with functional operations