Use mtl classes to avoid most explicit lifting