trying to make parser classes easier to understand