first committed version, to be tested in depth