It's a separate things so we can do a bit of preprocessing (mostly for commands)