working version ładniejsza, bez testów