had to refactor cause i dont know :(