Trochę rozbudowane, nie testowane