to be honest, I could refactor even more code away now