adapted to use C::L