added @author Sergey Calugher (SlKelevro@gmail.com)