more or less ready version