Author: Nosov Igor.