Main author: Malenko Dmitry