wstepna implementacja