initial arxiv version, minimalitically cut