simplify a lot with a refactor :D