Copyright (C) 2014-2016 by Vitaly Puzrin