First implementation.