Author: Veller Mikhail.