функции, относящиеся к генерации матрицы, вынесены в private - что бы нельзя было их дернуть после генерации