move things around in preparation for split between generic and specific grammar