Interfaces and implementations for objects which transform data from one representation or type to another.