refactoring grammar rules - pushing them out