more tweaks to the area parser, trying to simplify and decouple