diff --git a/grc/gsm_get_ccch_bursts.xml b/grc/gsm_get_ccch_bursts.xml
index 4c917b2..ca96dcf 100644
--- a/grc/gsm_get_ccch_bursts.xml
+++ b/grc/gsm_get_ccch_bursts.xml
@@ -2,7 +2,7 @@
 <block>
   <name>get_ccch_bursts</name>
   <key>gsm_get_ccch_bursts</key>
-  <category>gsm</category>
+  <category>GSM</category>
   <import>import gsm</import>
   <make>gsm.get_ccch_bursts()</make>
   <sink>
diff --git a/lib/get_ccch_bursts_impl.cc b/lib/get_ccch_bursts_impl.cc
index 249c271..d75d8b1 100644
--- a/lib/get_ccch_bursts_impl.cc
+++ b/lib/get_ccch_bursts_impl.cc
@@ -37,32 +37,28 @@
         uint32_t frame_nr = header->frame_number;
         pmt::pmt_t msgs[4];
         uint32_t frame_numbers[4];
+        uint32_t fn_mod51 = header->frame_number % 51;
         
         if(header->timeslot==0){
-            std::cout << (header->frame_number % 51) << std::endl;
-            if((header->frame_number % 51)>=2 & (header->frame_number % 51)<=5){
-                uint32_t ii = header->frame_number-2;
+            if(fn_mod51>=2 && fn_mod51<=5){
+                uint32_t ii = fn_mod51-2;
                 frame_numbers[ii]=header->frame_number;
                 msgs[ii] = msg;
-//                std::cout << "Hura, pierwszy if" << std::endl;
             }
             
-            if((header->frame_number % 51)==5){
+            if(fn_mod51==5){
                 //check for a situation where some BCCH bursts were lost
                 //in this situation frame numbers won't be consecutive
                 bool frames_are_consecutive = true;
-                for(int jj=1;jj<4;jj++){
+                for(int jj=1; jj<4; jj++){
                     if((frame_numbers[jj]-frame_numbers[jj-1])!=1){
                         frames_are_consecutive = false;
                     }
                 }
-                std::cout << "Hura, durgi if" << std::endl;                
                 if(frames_are_consecutive){
                     //send bursts to the output
-                    std::cout << "Hura, trzeci if" << std::endl;                
-
-                    for(int jj=1;jj<4;jj++){
-//                        message_port_pub(pmt::mp("bursts_out"), msgs[jj]);
+                    for(int jj=1; jj<4; jj++){
+                        message_port_pub(pmt::mp("bursts_out"), msgs[jj]);
                     }                 
                 }
             }
