Copyright (c) 2013-2018, Viacheslav Lotsmanov