First implementation of section 3.3