Please, make this more readable and maybe add comments.