added some parsing objects to handle translating rules into objects