Przerobienie kodu, podzial na generatory (on/off chyba zły?)