temporary variant2. changed some misprints