rev. 0.3.6 снова переделываем(