zrobione i z grubsza przetestowane ;)