diff --git a/psConfig/challenge/nea/nea.conf b/psConfig/challenge/nea/nea.conf
index e6bca5e70cf1e0577d8d04a403ba56836d1e874f..a2813af4522aa7074dfec592e54dabb31167cdab 100644
--- a/psConfig/challenge/nea/nea.conf
+++ b/psConfig/challenge/nea/nea.conf
@@ -21,9 +21,9 @@ bestpath=no;
 autoload=yes;
 
 [pocketsphinxinstance]
-name=removeAddBillItem;
-jsgf=../../../psGrammar/challenge/nea/removeAddBillItem.jsgf;
-rsbscope=/speechrec/psa/bill;
+name=takeOrder;
+jsgf=../../../psGrammar/challenge/nea/takeOrder.jsgf;
+rsbscope=/speechrec/psa/order;
 bestpath=no;
 autoload=yes;
 
diff --git a/psConfig/challenge/pollen/pollen.conf b/psConfig/challenge/pollen/pollen.conf
index cdc355157bb28b5a04273ec8184aa0f79a618444..992c8d3cff9cea876955d9647c795c3094f43857 100644
--- a/psConfig/challenge/pollen/pollen.conf
+++ b/psConfig/challenge/pollen/pollen.conf
@@ -8,7 +8,7 @@ alsadevice=sysdefault;
 
 [pocketsphinxinstance]
 name=confirm;
-jsgf=../../../psGrammar/confirm/confirm.jsgf;
+jsgf=../../../psGrammar/challenge/pollen/confirm.jsgf;
 rsbscope=/speechrec/psa/confirm;
 bestpath=no;
 autoload=yes;
@@ -26,3 +26,10 @@ jsgf=../../../psGrammar/challenge/pollen/setUpBill.jsgf;
 rsbscope=/speechrec/psa/pollenbill;
 bestpath=no;
 autoload=yes;
+
+[pocketsphinxinstance]
+name=newGuest;
+jsgf=../../../psGrammar/challenge/pollen/newGuest.jsgf;
+rsbscope=/speechrec/psa/pollenNewGuest;
+bestpath=no;
+autoload=yes;
diff --git a/psConfig/challenge/team2/configTeam2.conf b/psConfig/challenge/team2/configTeam2.conf
index 4e9d010b084094886e6b335e70f8694a7ff7aed2..91426d0f0b41631886f8b365e0e8cf1cce9e8590 100644
--- a/psConfig/challenge/team2/configTeam2.conf
+++ b/psConfig/challenge/team2/configTeam2.conf
@@ -7,21 +7,35 @@ openDeviceDirectly=yes;
 
 [pocketsphinxinstance]
 name=confirm;
-jsgf=../../psGrammar/confirm/confirm.jsgf;
+jsgf=../../../psGrammar/confirm/confirm.jsgf;
 rsbscope= /speechrec/psa/confirm;
 bestpath=no;
 autoload=yes;
 
 [pocketsphinxinstance]
 name=order;
-jsgf=../../psGrammar/challenge/team2/order.jsgf;
+jsgf=../../../psGrammar/challenge/team2/order.jsgf;
 rsbscope= /speechrec/psa/order;
 bestpath=no;
 autoload=yes;
 
 [pocketsphinxinstance]
 name=table;
-jsgf=../../psGrammar/challenge/team2/table.jsgf;
+jsgf=../../../psGrammar/challenge/team2/table.jsgf;
 rsbscope= /speechrec/psa/table;
 bestpath=no;
 autoload=yes;
+
+[pocketsphinxinstance]
+name=bill;
+jsgf=../../../psGrammar/challenge/team2/bill.jsgf;
+rsbscope= /speechrec/psa/bill;
+bestpath=no;
+autoload=yes;
+
+[pocketsphinxinstance]
+name=task5;
+jsgf=../../../psGrammar/challenge/team2/task5.jsgf;
+rsbscope= /speechrec/psa/task5;
+bestpath=no;
+autoload=yes;
diff --git a/psGrammar/challenge/nea/takeOrder.jsgf b/psGrammar/challenge/nea/takeOrder.jsgf
new file mode 100644
index 0000000000000000000000000000000000000000..0496628ab351a704e388f179e2bdcf731131d674
--- /dev/null
+++ b/psGrammar/challenge/nea/takeOrder.jsgf
@@ -0,0 +1,13 @@
+#JSGF V1.0;
+grammar nea;
+
+public <nea> = [tobi|tiago] ( <pre>  <ord> );
+
+<pre> = (i want | i would like to have);
+<ord> = (<order> | <order> <addOrder>);
+<order> = (<drink> | <number> <drink>);
+<addOrder> = (<and> <order>);
+
+<drink> = (coke|malz|lemonade|water|ice tea|coffee);
+<number> = (one|two|three|four|five|six|seven|eight|nine);
+<and> = (and);
diff --git a/psGrammar/challenge/pollen/challenge.jsgf b/psGrammar/challenge/pollen/challenge.jsgf
index 271b53225ae7c791890c4bc70131e86a17fe2d80..e4457fc1bfa3c7e42cd562e538bdbf45e883ec8a 100644
--- a/psGrammar/challenge/pollen/challenge.jsgf
+++ b/psGrammar/challenge/pollen/challenge.jsgf
@@ -1,19 +1,9 @@
 #JSGF V1.0;
 grammar pollen;
-public <orderstring> = [<robot>] (<receiveorderstring> | <tablestring>);
+public <orderstring> = [<robot>] [please] <receiveorderstring> [please];
 
-<receiveorderstring> = bring [me] [a] <drink>;
-<tablestring> = table <table>;
-<table> = (a | b);
+<receiveorderstring> = [bring] [me] [a] <drink>;
 
-<drink> = (tea | coke | fanta | water);
-<number> = (one | two | three | four | five | six | seven | eight | nine | zero);
+<drink> = (coke | malz | lemonade | water | ice tea | coffee);
 
-public <confirm> = <confirm_yes> | <confirm_no>;
-
-public <confirm_yes> = <robot> <yes_words>;
-public <confirm_no> = <robot> <no_words>; 
-
-<yes_words> = (yes) | (confirmed);
-<no_words> = (no);
 <robot> = (tobi) | (robot) | (biron) | (pepper) | (tiago) | (floka) | (meka);
diff --git a/psGrammar/challenge/pollen/confirm.jsgf b/psGrammar/challenge/pollen/confirm.jsgf
new file mode 100644
index 0000000000000000000000000000000000000000..046acdaa71382ecfcdfade694ac3945a1ef5d0ba
--- /dev/null
+++ b/psGrammar/challenge/pollen/confirm.jsgf
@@ -0,0 +1,10 @@
+#JSGF V1.0;
+grammar ToBI_confirm;
+public <confirm> = <confirm_yes> | <confirm_no>;
+
+<confirm_yes> = [<robot>] <yes_words>;
+<confirm_no> = [<robot>] <no_words>; 
+
+<yes_words> = (yes) | (confirmed);
+<no_words> = (no);
+<robot> = (tobi) | (robot) | (biron) | (pepper);
diff --git a/psGrammar/challenge/pollen/newGuest.jsgf b/psGrammar/challenge/pollen/newGuest.jsgf
new file mode 100644
index 0000000000000000000000000000000000000000..0e28eb8961b59f0aae2e6e482dc7f5efb5820ae0
--- /dev/null
+++ b/psGrammar/challenge/pollen/newGuest.jsgf
@@ -0,0 +1,23 @@
+#JSGF V1.0;
+grammar newGuest;
+public <newGuestString> = [<robot>] [please] <bringme> [please];
+
+<bringme> = [bring] [me] [to] <location>;
+
+<location> = (<registerloc> | <bathroomloc> | <tableloc>);
+
+<registerloc> = [the] <register>;
+
+<register> = cash register;
+
+<bathroomloc> = [the] <bathroom>;
+
+<bathroom> = bathroom;
+
+<tableloc> = [<empty>] <table>;
+
+<empty> = [an] empty;
+
+<table> =  [a] table;
+
+<robot> = (floka | meka | robot | tobi | tiago);
diff --git a/psGrammar/challenge/pollen/setUpBill.jsgf b/psGrammar/challenge/pollen/setUpBill.jsgf
index c3d7b8765fcff44b22b1b5eb5eab059a8d95028c..4de1d1572d12be285994fac507240ef56607b5f0 100644
--- a/psGrammar/challenge/pollen/setUpBill.jsgf
+++ b/psGrammar/challenge/pollen/setUpBill.jsgf
@@ -2,16 +2,18 @@
 grammar setUpBill;
 public <setUpBillString> = [<robot>] (<setUpBill>|<correctDrinks>|<additionalDrink>);
 
-<additionalDrink> = <drink>
+<setUpBill> = [please] [set] [up] [the] bill [please];
 
-<setUpBill> = set up [the] bill [please];
-
-<correctDrinks> = [the] drinks [are] <drinks>;
+<correctDrinks> = [the] [drinks] [are] <drinks>;
 
 <drinks> = <drink> <drink> [and] <drink>;
 
-<additionalDrink> = [i] [also] (drank|had) [a] <drink>;
+<additionalDrink> = [i] [also] [<drank>|<had>] [a] <drink>;
+
+<had> = had;
+
+<drank> = drank;
 
-<drink> = (water | milk | smoothie | tea);
+<drink> = (coke | malz | lemonade | water | (ice tea) | coffee);
 
 <robot> = (floka | meka | robot | tobi | tiago);
diff --git a/psGrammar/challenge/team2/bill.jsgf b/psGrammar/challenge/team2/bill.jsgf
new file mode 100644
index 0000000000000000000000000000000000000000..451539b427590eceff96abc8bf1da214cf1ef4a9
--- /dev/null
+++ b/psGrammar/challenge/team2/bill.jsgf
@@ -0,0 +1,9 @@
+#JSGF V1.0;
+grammar bill;
+public <command> = ( <setupbill> | <thatscorrect> | <correction> );
+
+<setupbill> = (([tiago] [please]) ((set up the ( bill | check )) | (could i have the ( bill | check )) | (i ( would like | want ) to pay) | (can i pay) | bill) [now] [please]);
+<thatscorrect> = ( yes | ([yes] you got that ( right | correct )) | ([yes] that is ( right | correct )) );
+<correction> = ([[no] ((i ordered) | (there are))] <drink> [[and] <drink>] [[and] <drink>]);
+
+<drink> = ([ (((a | one) [(bottle | cup | can) of] )) | ((two | three) [(bottles | cups | cans) of]) ] ( coke | malz | lemonade | water | (ice tea) | coffee ));
diff --git a/psGrammar/challenge/team2/order.jsgf b/psGrammar/challenge/team2/order.jsgf
index bcc4bb2923e5b6722d530bf1788cce9d1b022159..a71d948b3885c1cf95305c4653a202b5a95d8527 100644
--- a/psGrammar/challenge/team2/order.jsgf
+++ b/psGrammar/challenge/team2/order.jsgf
@@ -1,11 +1,9 @@
 #JSGF V1.0;
 grammar ordering;
 public <ordering> = [tobi] <order>;
-public <table> = [at table] <number>;
 
-<order> = [please] bring [me a] <drink>;
+<order> = [please] bring [me] [a] <drink>;
 
-<drink> = (coconut_milk | tea | coke | fanta | water | orange_juice);
+<drink> = (coke | malz | lemonade | water | (ice tea) | coffee);
 
-<number> = (a | b);
 
diff --git a/psGrammar/challenge/team2/table.jsgf b/psGrammar/challenge/team2/table.jsgf
index c8fdc1f2d22ed7dfc1fbbe4d1e6968d4a6ffe6ac..7eb97074be6558ba0ec463652f329d0153e0f754 100644
--- a/psGrammar/challenge/team2/table.jsgf
+++ b/psGrammar/challenge/team2/table.jsgf
@@ -1,8 +1,8 @@
 #JSGF V1.0;
 grammar table;
-public <table> = [tobi] <place>;
+public <table> = <place>;
 
-<place> = [[please] go to table] <number>;
+<place> = table <number>;
 
 <number> = (a | b);
 
diff --git a/psGrammar/challenge/team2/task5.jsgf b/psGrammar/challenge/team2/task5.jsgf
new file mode 100644
index 0000000000000000000000000000000000000000..1fa4b0f9c6bb32db2eea6531302edf48ddeea772
--- /dev/null
+++ b/psGrammar/challenge/team2/task5.jsgf
@@ -0,0 +1,11 @@
+#JSGF V1.0;
+grammar task5;
+
+public <sentence> = [<robot>] [please] <command> <location>;
+
+<robot> = (tiago|tobi);
+<command> = (((bring | take) me to) | (where (is | can i find )) | i want to go to);
+<location> = (the <bathroom> | table <table> | the <cashRegister>);
+<bathroom> = (bathroom | toilet);
+<cashRegister> = (cashier | ([cash] register));
+<table> = (a|b|c);