Author: Dias Nazikhovich Valeev