diff --git a/key b/key
deleted file mode 100644
index cfce64649ed28eed506176a54be057b4addebd0e..0000000000000000000000000000000000000000
--- a/key
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEpAIBAAKCAQEA2RESs9Gatv4FkxsGBd5Ot9KSWSnK9UlnzD7vgmqO29tiUmqa
-wvZTkanhvuiClMcGCLPHB3F/N92jiTYn1VXuNDeEoO1pMo3RczaoIc7NpoIey91y
-94vfr/CYBXZvfRPWp64v/ViK3tLz1xAfuh+xrGG/HR1HaxXd+cmP9ujjvL7XeFdU
-bZumR1Zn8WM2Y4tp2AXynuNr5yP1Sug4XGVOEhdgyPsZna7F/o1rtwTdmQhcaPiv
-T1sbJQmHhTa2UkLktUracG8qvt+wrOcvsD0Q8Xb/1JrW8RogtpW1XmlJcwCgYtx9
-Wlq/UoAiry+2UQrVXZLCIWYE/Aiw/6d7mSNhNwIDAQABAoIBAEAOdcJy/IE7/VEo
-DGL286vzjBSb7LTt8J+pguytnXLsDtvbcchPAOJfi6rW2pIlGXa/9uAPckd+NKBt
-RtwB+8WVDKKg7QZqK4EghAVWDgIxK/1lYGQE9wHosjQKe2Qh0pqxIKBW3MRc5HB2
-5aX7bGc+gTOKTGUhktv/y2hF2c78xyaeA7NdukIuFRx9j2QE78xkiRyslGrunDWu
-PYScrBr3+mT50p/RdRg8YcOVZNC0eqyC7Yx5quXxtrDlkqFDX35SxUddHaBPPBf3
-yhgBWMIzIteHQvNhUux7vwEiRxyoD0ZRKY5xh84YKd1RWeRxGMSLWxGcVGEDo/d6
-OVC6vIECgYEA+XpOPipXHX3XS3crfBovuM/qAoq1MTpF+oIockQ01vHAWrR+Jkar
-DmubI75FiSiqPWyoa4sWWrjfVmx6FzC7cgpKI7DbGLt2aVPhQonyYn+QGdZzI2wC
-4JN7fyOqWlzhj/zznlpBg48vGbvyO7J2phSY0PFJzQF//MRcFjDUWxECgYEA3r3Z
-FghfF6PYtRceNWvFAYv/D8c5z2kbhAUGC6Eih9zHM3F16fJOyMJrqajqAANik6sS
-PHfFKDRMH2CwSolilixSrnXYGDB1PUxezCqI7/Jad+7g4ME8OuyjI+XoSFEQBydf
-hw9pk99F6qUMJIDjiWEr7fIC1KG9voPbML0hJ8cCgYEAuOPVvOiwK2Ep//nPtmfJ
-2lPsf/nAkz02w5NW2miGKI5+GjsOCtvwxf0luvW2nxIOKPuwThOEe7PrgSdfzHQH
-V1sc2xqlJc040pKhrSiDBFC5wQxXxHa2Iy3qJq2OAO45FPdIraECULf7Fj1eJrP6
-jtdQ8fkA0vg7nF8CSEfj+aECgYAcHFucYzwVELGV0TAXz90SH+f1xs/t9Dbrx3KG
-3zQrb1qYjHY0K0d0IM1ToSS/Ea5MMqffh8ITG96LizlUftg5Waipqee2zc7OCKhi
-HfAgUDbIshYhZ2HBkgHY0vgowEpEjNyKgBB0ABaj0Wah6L5OpTvVENj4mt0GgT+V
-fBkGGwKBgQDR9q4gHOaTyPEgl7qhWjbGvoALTkom3LWKl8x8ASV7kIwOvA1XNvqX
-r3WswriQ67OH7xEo/fhzRmuaeuOXnjUAka/PghPa9Le1PtXt3xCX7iC0b3ecFjsJ
-SufcBPT8h4WCUL4DV0mC2lrBWguP6xSr5hMwd9n4l/GSwhG9LC+kbQ==
------END RSA PRIVATE KEY-----
diff --git a/key.pub b/key.pub
deleted file mode 100644
index 2f1ff742e42dc1560a581fb3ef250cfb61b6d7b0..0000000000000000000000000000000000000000
--- a/key.pub
+++ /dev/null
@@ -1 +0,0 @@
-ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDZERKz0Zq2/gWTGwYF3k630pJZKcr1SWfMPu+Cao7b22JSaprC9lORqeG+6IKUxwYIs8cHcX833aOJNifVVe40N4Sg7WkyjdFzNqghzs2mgh7L3XL3i9+v8JgFdm99E9anri/9WIre0vPXEB+6H7GsYb8dHUdrFd35yY/26OO8vtd4V1Rtm6ZHVmfxYzZji2nYBfKe42vnI/VK6DhcZU4SF2DI+xmdrsX+jWu3BN2ZCFxo+K9PWxslCYeFNrZSQuS1Stpwbyq+37Cs5y+wPRDxdv/UmtbxGiC2lbVeaUlzAKBi3H1aWr9SgCKvL7ZRCtVdksIhZgT8CLD/p3uZI2E3 tht_krisztian@sch.bme.hu
diff --git a/receptor/bin/Debug/receptor b/receptor/bin/Debug/receptor
deleted file mode 100755
index de62d36821481ae82e49e215478f809e5e53c3d2..0000000000000000000000000000000000000000
Binary files a/receptor/bin/Debug/receptor and /dev/null differ
diff --git a/receptor/bin/Debug/receptor.exe b/receptor/bin/Debug/receptor.exe
deleted file mode 100644
index f2dfdf45362b5b272d23c8070575fd2532577fc0..0000000000000000000000000000000000000000
Binary files a/receptor/bin/Debug/receptor.exe and /dev/null differ
diff --git a/receptor/debugmalloc.c b/receptor/debugmalloc.c
deleted file mode 100644
index eee8d937bfda979c6cce1557d7a028ed0ff10258..0000000000000000000000000000000000000000
--- a/receptor/debugmalloc.c
+++ /dev/null
@@ -1,443 +0,0 @@
-#include <stdlib.h>
-#include <stdio.h>
-#include <ctype.h>
-#include <string.h>
-#include <time.h>
-#include <stdarg.h>
-
-#include "debugmalloc.h"
-
-/* ervenytelenitjuk ezeket a makrokat, mert nekunk az igazi malloc/free kell */
-#ifdef malloc
-    #undef malloc
-#endif
-#ifdef free
-    #undef free
-#endif
-#ifdef calloc
-    #undef calloc
-#endif
-#ifdef realloc
-    #undef realloc
-#endif
-
-/* a kanari merete, bajtokban */
-static size_t const kanari_meret=128;
-/* a kanari karakter */
-static unsigned char const kanari='K';
-
-/* csak egy kis veletlenszam-generator.
- * direkt van egy sajat, hogy a szabvany rand() belso allapotat
- * ne zavarja meg a sajat malloc.
- * 
- * klasszikus. :D
- */
-static unsigned char debugmalloc_random()
-{
-    static unsigned int seed_1=0x00, seed_2=0x1e;
-    unsigned int temp_1, temp_2;
-    unsigned int carry, result;
- 
-    temp_1=(seed_1&0x0001) << 7;
-    temp_2=(seed_2 >> 1)&0x007F;
-    result=(seed_2)+((seed_2&0x0001) << 7);
-    carry=(result >> 8);
-    result=result&0x00FF;
-    result=result+carry+0x13;
-    carry=(result >> 8);
-    seed_2=result&0x00FF;
-    result=seed_1+carry+temp_1;
-    carry=(result >> 8);
-    result=result&0x00FF;
-    result=result+carry+temp_2;
-    seed_1=result&0x00FF;
-
-    return seed_1;
-}
-
-
-
-/* a lefoglalt teruleteket nyilvantarto lista. */
-typedef struct Lefoglalt {
-    void *valodi;       /* ezt mallocoltuk mi */
-    void *usernek;      /* ezt mutatjuk a juzernek */
-    size_t meret;       /* ekkora teruletet kert a juzer. */
-    
-    char fv[16];        /* foglalo fuggveny */
-    char cel[128];      /* a mallocnak ezt a kifejezest adta */
-    char file[64];      /* ebben a fajlban tortent a foglalas */
-    unsigned line;      /* a fajlnak ebben a soraban */
-    
-    struct Lefoglalt *prev, *next;  /* duplan lancolt listahoz */
-} Lefoglalt;
-
-
-static Lefoglalt eleje, vege;     /* strazsak. statikusan, hogy ne kelljen freezni :) */
-static Lefoglalt *lista=NULL;     /* maga a lista; a pointer az eleje strazsara fog mutatni */
-
-static char logfile[256]="";      /* ide logol */
-
-
-/* a naplozofajl nevet allitja be. ha ures, stderr-re fog naplozni. */
-void debugmalloc_naplofajl(char const *nev)
-{
-    strncpy(logfile, nev, sizeof(logfile));
-    logfile[sizeof(logfile)-1]=0;
-}
-
-/* elodeklaracio az init() fv. szamara */
-static void debugmalloc_programvegi_dump();
-
-/* letrehozza a listat. a sajat malloc hivja egyszer, az elso meghivasakor.
- * a lista pointer (lista) inditaskori erteke NULL, de lesznek strazsak.
- * innen lehet tudni, hogy mar hivodott-e.
- * a strazsakat statikusan hoztam letre; vagyis ha inicializalva van mar a
- * lista, de a juzer meg nem foglalt memoriat, akkor nincs mallocolva
- * semmi! emiatt biztosan nem memleakel ez a program pluszban, ha a juzer
- * programja nem memleakelt. */
-static void debugmalloc_init()
-{
-    eleje.prev=NULL;
-    eleje.next=&vege;
-    vege.prev=&eleje;
-    vege.next=NULL;
-    lista=&eleje;
-    eleje.valodi=eleje.usernek=NULL;
-    vege.valodi=vege.usernek=NULL;
-    
-    atexit(debugmalloc_programvegi_dump);
-}
-
-
-/* printfel a megadott fajlba, vagy stderr-re. */
-static int debugmalloc_printf(char const *format, ...)
-{
-    va_list ap;
-    int chars;
-    FILE *f=stderr;
-    
-    if (strcmp(logfile, "")!=0) {
-        f=fopen(logfile, "at");
-        if (f==NULL) {
-            f=stderr;
-            fprintf(stderr, "debugmalloc: nem tudom megnyitni a %s fajlt irasra!\n", logfile);
-        }
-    }
-    
-    va_start(ap, format);
-    chars=vfprintf(f, format, ap);
-    va_end(ap);
-    
-    if (f!=stderr)
-        fclose(f);
-    
-    return chars;
-}
-
-
-/* inicializalja a lefoglalt memoriat.
- * az elejere es a vegere kanari_meret meretben kanari kerul;
- * a kozepere, a juzernek valo reszbe pedig debugmalloc_random szamok. */
-static void kanari_letrehoz(Lefoglalt *mem)
-{
-    unsigned char *teljes=(unsigned char *) mem->valodi;
-    unsigned char *kanari1=teljes;
-    unsigned char *kanari2=teljes+kanari_meret+mem->meret;
-    size_t i;
-    
-    for (i=0; i<kanari_meret; ++i) {
-        kanari1[i]=kanari;
-        kanari2[i]=kanari;
-    }
-}
-
-/* ellenorzi a kanarit.
- * igaz ertekkel ter vissza, ha rendben van. */
-static int kanari_rendben(Lefoglalt const *mem)
-{
-    unsigned char *teljes=(unsigned char *) mem->valodi;
-    unsigned char *kanari1=teljes;
-    unsigned char *kanari2=teljes+kanari_meret+mem->meret;
-    size_t i;
-    
-    for (i=0; i<kanari_meret; ++i) {
-        if (kanari1[i]!=kanari)
-            return 0;
-        if (kanari2[i]!=kanari)
-            return 0;
-    }
-    return 1;
-}
-
-/* memoriateruletet dumpol, a megadott meretben. */
-static void debugmalloc_dump_memory(void const *memoria, size_t meret)
-{
-    unsigned char const *mem=(unsigned char const *) memoria;
-    unsigned y, x;
-
-    /* soronkent 16; meret/16-nyi sor lesz, persze felfele kerekitve */
-    for (y=0; y<(meret+15)/16; y++) {
-        debugmalloc_printf("      %04x  ", y*16);
-        
-        for (x=0; x<16; x++)
-            if (y*16+x<meret)
-                debugmalloc_printf("%02x ", mem[y*16+x]);
-            else
-                debugmalloc_printf("   ");
-        debugmalloc_printf("  ");
-        for (x=0; x<16; x++)
-            if (y*16+x<meret) {
-                unsigned char c=mem[y*16+x];
-                debugmalloc_printf("%c", isprint(c)?c:'.');
-            }
-            else
-                debugmalloc_printf(" ");
-
-        /* uj sor */
-        debugmalloc_printf("\n");
-    }
-}
-
-/* egy adott lefoglalt tetelhez
- * tartozo adatokat irja ki. foglalas helye, modja;
- * meret, pointer. ad az elejerol dumpot is;
- * illetve a teljes elotte es utana kanarit kiirja,
- * ha kiderul, hogy az serult. */
-static void debugmalloc_dump_elem(Lefoglalt const *iter)
-{
-    int kanari_ok=kanari_rendben(iter);
-    
-    debugmalloc_printf("  MEMORIATERULET: %p, kanari: %s\n"
-                    "    foglalva itt: %s:%u\n"
-                    "    foglalas modja: %s(%s) (%u bajt)\n",
-        iter->usernek, kanari_ok?"ok":"**SERULT**",
-        iter->file, iter->line,
-        iter->fv, iter->cel, (unsigned) iter->meret);
-    
-    if (!kanari_ok) {
-        debugmalloc_printf("    ELOTTE KANARI: \n");
-        debugmalloc_dump_memory(iter->valodi, kanari_meret);
-    }
-
-    /* elso 64 byte dumpolasa */
-    debugmalloc_printf("    memoria eleje: \n");
-    debugmalloc_dump_memory(iter->usernek, iter->meret>64 ? 64:iter->meret);
-
-    if (!kanari_ok) {
-        /* erre a vs miatt van szukseg, mert az nem szereti a void *+size_t
-         * kifejezest... trollok */
-        unsigned char const *valodi_char=(unsigned char const *) iter->valodi;
-        debugmalloc_printf("    UTANA KANARI: \n");
-        debugmalloc_dump_memory(valodi_char+kanari_meret+iter->meret, kanari_meret);
-    }
-    
-    debugmalloc_printf("\n");
-}
-
-/* kiirja a lefoglalt memoriateruletek listajat. */
-void debugmalloc_dump()
-{
-    Lefoglalt *iter;
-    
-    debugmalloc_printf("** DEBUGMALLOC DUMP ************************************\n\n");
-    for (iter=lista->next; iter!=&vege; iter=iter->next)
-        debugmalloc_dump_elem(iter);
-    debugmalloc_printf("** DEBUGMALLOC DUMP VEGE *******************************\n");
-}
-
-
-
-
-
-
-/* ez lefoglal egy megadott meretu memoriat;
- * pontosabban annal nagyobbat. elotte-utana kanarit inicializal,
- * a juzernek jaro reszt pedig random szamokkal tolti fel.
- * visszaterni a juzernek jaro terulet cimevel ter vissza. */
-void *debugmalloc_malloc_full(size_t meret, char const *fv, char const *cel, char const *file, unsigned line, int zero)
-{
-    Lefoglalt *uj;
-    void *valodi;
-    unsigned char *usernek;
-    
-    /* lefoglalunk egy adag memoriat; elotte-utana tobblet hellyel. */
-    valodi=malloc(meret+2*kanari_meret);
-    if (valodi==NULL) {
-        debugmalloc_printf("debugmalloc: %s @ %s:%u: nem sikerult %u meretu memoriat foglalni!\n",
-                            fv, file, line, (unsigned) meret);
-        /* mint az igazi malloc, nullpointert adunk */
-        return NULL;
-    }
-
-    uj=(Lefoglalt *) malloc(sizeof(Lefoglalt));
-    if (uj==NULL) {
-        debugmalloc_printf("debugmalloc: %s @ %s:%u: le tudtam foglalni %u memoriat, de utana a sajatnak nem, sry\n",
-                            fv, file, line, (unsigned) meret);
-        abort();
-    }
-    uj->valodi=valodi;
-    usernek=(unsigned char *) valodi+kanari_meret;
-    uj->usernek=usernek;
-    uj->meret=meret;
-
-    strcpy(uj->fv, fv);
-    strncpy(uj->cel, cel, sizeof(uj->cel));
-    uj->cel[sizeof(uj->cel)-1]=0;
-    strncpy(uj->file, file, sizeof(uj->file));
-    uj->file[sizeof(uj->file)-1]=0;
-    uj->line=line;
-
-    kanari_letrehoz(uj);
-    if (zero)
-        memset(usernek, 0, meret);
-    else {
-        size_t i;
-        for (i=0; i<meret; ++i)
-            usernek[i]=debugmalloc_random();
-    }
-        
-    /* lista elejere beszurja */
-    if (lista==NULL)
-        debugmalloc_init();
-    uj->prev=lista;         /* elotte a strasza */
-    uj->next=lista->next;   /* utana az eddigi elso */
-    lista->next->prev=uj;   /* az eddigi elso elott az uj */
-    lista->next=uj;         /* a strazsa utan az uj */
-    
-    return uj->usernek;
-}
-
-/* ez felszabaditja a memoriateruletet, amit a debugmalloc
- * foglalt. mivel a listaban megvannak az epp lefoglalt
- * teruletek, ezert ellenorizni tudja, helyes-e a free hivas.
- * ellenorzi a kanarit is, es kiirja az adatokat, ha helytelen.
- */
-void debugmalloc_free_full(void *mem, char const *fv, char const *file, unsigned line)
-{
-    Lefoglalt *iter;
-    unsigned char *usernek;
-    size_t i;
-
-    /* NULL pointerre nem csinalunk semmit */
-    if (mem==NULL)
-        return;
-
-    /* ha meg sose mallocolt, a lista nincs inicializalva. a free-je se lehet helyes */
-    if (lista==NULL) {
-        debugmalloc_printf("debugmalloc: %s @ %s:%u: meg egyszer se hivtal mallocot!\n", fv, file, line);
-        abort();
-    }
-
-    /* megkeressuk */
-    for (iter=lista->next; iter!=&vege; iter=iter->next)
-        if (iter->usernek==mem)
-            break;
-    
-    /* ezt nyilvan ne engedjuk, mert akkor olyan pointer van, amit nem kene
-     * free()-ni; ezt a rendes free() se birna */
-    if (iter->usernek==NULL) {
-        debugmalloc_printf("debugmalloc: %s @ %s:%u: olyan teruletet akarsz felszabaditani, ami nincs lefoglalva!\n", fv, file, line);
-        abort();
-    }
-    
-    /* szoval megtalaltuk. iter mutat a torlendo teruletre. */
-    if (!kanari_rendben(iter)) {
-        debugmalloc_printf("debugmalloc: %s @ %s:%u: a %p memoriateruletet tulindexelted!\n", fv, file, line, mem);
-        debugmalloc_dump_elem(iter);
-    }
-    
-    /* torles elott kitoltjuk randommal, ha esetleg dereferalna, akkor tuti fajjon */
-    usernek=(unsigned char *) iter->usernek;
-    for (i=0; i<iter->meret; ++i)
-        usernek[i]=debugmalloc_random();
-    /* memoria torlese; juzer memoriaja, es listabol */
-    free(iter->valodi);
-    iter->next->prev=iter->prev;
-    iter->prev->next=iter->next;
-    free(iter);
-}
-
-
-/* a megadott memoriat meretezi at.
- * a sajat free/malloc paros segitsegevel valositom meg. */
-void *debugmalloc_realloc_full(void *oldmem, size_t newsize, char const *fv, char const *cel, char const *file, unsigned line)
-{
-    Lefoglalt *iter;
-    void *ujmem;
-    int masolni;
-    
-    /* ha null az oldmem, akkor ez ekvivalens egy malloc hivassal */
-    if (oldmem==NULL)
-        return debugmalloc_malloc_full(newsize, fv, cel, file, line, 0);
-    
-    /* ha az uj meret 0, akkor pedig egy free hivassal */
-    if (newsize==0) {
-        debugmalloc_free_full(oldmem, fv ,file, line);
-        return NULL;
-    }
-
-    /* megkeressuk a regi memoriat, mert kell a meret */
-    for (iter=lista->next; iter!=&vege; iter=iter->next)
-        if (iter->usernek==oldmem)
-            break;
-    if (iter->usernek==NULL) {
-        debugmalloc_printf("debugmalloc: %s @ %s:%u: olyan teruletet akarsz atmeretezni, ami nincs lefoglalva!\n", fv, file, line);
-        abort();
-    }
-    
-    ujmem=debugmalloc_malloc_full(newsize, fv, cel, file, line, 0);
-    if (ujmem==NULL) {
-        debugmalloc_printf("debugmalloc: %s @ %s:%u: nem sikerult uj memoriat foglalni az atmeretezeshez!\n", fv, file, line);
-        /* ilyenkor nullal ter vissza, es a regit meghagyja */
-        return NULL;
-    }
-    /* melyik kisebb? annyi bajtot kell masolni. */
-    masolni=iter->meret < newsize? iter->meret : newsize;
-    memcpy(ujmem, oldmem, masolni);
-    debugmalloc_free_full(oldmem, fv, file, line);
-    
-    return ujmem;
-}
-
-
-/* ez hivodik meg a program vegen, az atexit() altal. */
-static void debugmalloc_programvegi_dump()
-{
-    /* just in case */
-    if (lista==NULL)
-        return;
-    
-    /* ha nem ures a lista */
-    if (lista->next->next!=NULL) {
-        debugmalloc_printf("********************************************************\n"
-                           "*\n"
-                           "* MEMORIASZIVARGAS VAN A PROGRAMBAN!!!\n"
-                           "*\n"
-                           "********************************************************\n");
-        debugmalloc_dump();
-    }
-}
-
-
-
-/* ha szukseg lenne egy, az eredeti fuggvennyel prototipusban
- * kompatibilis valtozatra, ezek hasznalhatoak. */
-void *debugmalloc_malloc(size_t meret)
-{
-    return debugmalloc_malloc_full(meret, "malloc", "ismeretlen", "(ismeretlen)", 0, 0);
-}
-
-void *debugmalloc_calloc(size_t nmemb, size_t meret)
-{
-    return debugmalloc_malloc_full(meret, "calloc", "ismeretlen", "(ismeretlen)", 0, 1);
-}
-
-void debugmalloc_free(void *mem)
-{
-    debugmalloc_free_full(mem, "free", "(ismeretlen)", 0);
-}
-
-void *debugmalloc_realloc(void *oldmem, size_t meret)
-{
-    return debugmalloc_realloc_full(oldmem, meret, "realloc", "ismeretlen", "(ismeretlen)", 0);
-}
diff --git a/receptor/debugmalloc.h b/receptor/debugmalloc.h
deleted file mode 100644
index 8ebd2aada0c4c63450feb71e1bd63d894eca2e6d..0000000000000000000000000000000000000000
--- a/receptor/debugmalloc.h
+++ /dev/null
@@ -1,67 +0,0 @@
-#ifndef DEBUGMALLOC_H
-#define DEBUGMALLOC_H
-
-/* 
- * Ezek azok a makrok, amelyek biztositjak, hogy a sajat
- * fuggvenyek hivodjanak, amikor malloc() vagy free()
- * szerepel a programban.
- * 
- * Semmi egyeb teendo nincsen, csak az, hogy ezt a header
- * fajlt be kell szerkeszteni _minden_ forraskodba. A szokasos
- * formaban megadott malloc() es free() hivasok helyett ez a
- * valtozat fog automatikusan mindig meghivodni a makrok miatt.
- * 
- * Fontos, hogy ezt az include fajlt a project OSSZES
- * forras fajljaban hasznalni kell! Siman, a beepitett
- * free()-vel nem lehet felszabaditani egy olyan teruletet,
- * amelyet ez a malloc() foglalt! Mas a pointer.
- * 
- * Ha szukseg van arra, hogy a malloc() es a free() cime
- * kepezheto legyen, akkor a HASZNALOM_A_MALLOC_FREE_POINTERET
- * makrot definialni kell az #include "debugmalloc.h" sor
- * elott. Ilyenkor egy butabb valtozatot fog hasznalni,
- * amely viszont kompatibilis prototipussal rendelkezik.
- */
-
-#include <stdlib.h>
-
-#ifdef HASZNALOM_A_MALLOC_FREE_POINTERET
-    #define malloc debugmalloc_malloc
-    #define calloc debugmalloc_calloc
-    #define realloc debugmalloc_realloc
-    #define free debugmalloc_free
-#else
-    #define malloc(X) debugmalloc_malloc_full(X, "malloc", #X, __FILE__, __LINE__, 0)
-    #define calloc(X,Y) debugmalloc_malloc_full(X*Y, "calloc", #X ", " #Y, __FILE__, __LINE__, 1)
-    #define realloc(P,X) debugmalloc_realloc_full(P, X, "realloc", #X, __FILE__, __LINE__)
-    #define free(P) debugmalloc_free_full(P, "free", __FILE__, __LINE__)
-#endif
-
-/*
- * Ezzel a fuggvennyel lehet megadni azt, hogy az stderr helyett
- * egy fajlba irja az uzeneteit a debugmalloc. Ures fajlnev ("")
- * eseten visszaallitja stderr-re.
- */
-void debugmalloc_naplofajl(char const *nev);
-
-/*
- * Ezt meghivva egy listat keszit az aktualisan lefoglalt
- * memoriateruletekrol.
- */
-void debugmalloc_dump();
-
-/* 
- * Ezek a fuggvenyek vannak a szokasos malloc() es free()
- * helyett. Nem kell oket hasznalni kozvetlenul; a makrok
- * altal a rendes malloc() es free() ezekre cserelodik ki.
- */
-void *debugmalloc_malloc_full(size_t meret, char const *fv, char const *cel, char const *file, unsigned line, int zero);
-void *debugmalloc_realloc_full(void *regimem, size_t newsize, char const *fv, char const *cel, char const *file, unsigned line);
-void debugmalloc_free_full(void *mem, char const *fv, char const *file, unsigned line);
-
-void *debugmalloc_malloc(size_t meret);
-void *debugmalloc_calloc(size_t nmemb, size_t meret);
-void *debugmalloc_realloc(void *regimem, size_t meret);
-void debugmalloc_free(void *mem);
-
-#endif  /* DEBUGMALLOC_H */
diff --git a/receptor/main.c b/receptor/main.c
index d18d41846b5b87e130c6e528fe304606e96f544e..b0e5e993927e1500d9d4b63027b209850a1e8595 100644
--- a/receptor/main.c
+++ b/receptor/main.c
@@ -2,323 +2,247 @@
 #include <stdlib.h>
 #include <string.h>
 #include <ctype.h>
-//#include "debugmalloc.h"
+#include "receptor.h"
+#define TESZT
 
-typedef enum menu {
-    alap=0,
-    betolt_adatok=1,
-    alapanyagok_beker=2,
-    kereses=3
-}menu;
+Recept* Beolvas_recept(FILE *fp,char * fajlnev);
+Hozzavalo* Beolvas_hozzavalo(char *str);
 
-typedef enum beolvasas{
-    elso_szakasz,
-    hozzavalok_beolvas
-} beolvasas;
-
-typedef enum mertek{
-    mg=0,g,dkg,kg,ml,cl,dl,l,db,teaskanal,kiskanal,evokanal,merokanal,par,fej,gerezd,szelet,csomag,ismeretlen
-} mertek;
-
-char mertekegysegek_szovegben[][15]={"mg","g","dkg","kg","ml","cl","dl","l","db","teaskanal","kiskanal",
-"evokanal","merokanal","pár","fej","gerezd","szelet","csomag",""};
-
-//Hozzávalók tárolására szolgáló struktúra
-typedef struct Hozzavalo{
-    char nev[100];
-    int mennyiseg;
-    mertek mertekegyseg;
-    struct hozzavalo_struct *elozo;
-    struct Hozzavalot *kovetkezo;
-} Hozzavalo;
-
-typedef struct Lista_hoz{
-    Hozzavalo *eleje;
-    Hozzavalo *vege;
-}Lista_hoz;
 
-//Recept adatstruktúra, mag
-typedef struct Recept{
-    char nev[100];
-    char fajlnev[100];
-    int nehezseg;
-    int fozesi_ido; //percben kifejezve
-    Lista_hoz *hozzavalok;
-    int fo; //hány fő részére
-    int elkeszites_db;
-    char** elkeszites;
-    struct Recept *kovetkezo;
-    struct Recept *elozo;
-} Recept;
-
-//Láncolt lista adatszerkezet strázsája, pointerek a lista első és utolsó elemére
-typedef struct Lista_rec{
-    Recept *eleje;
-    Recept *vege;
-}Lista_rec;
-
-void beszur_a_hoz_listaba(Hozzavalo * uj,Lista_hoz *lista)
+void Lista_hoz_beszur(Hozzavalo *uj,Lista_hoz *lista)
 {
-    Hozzavalo *temp;
-    temp=lista->eleje->kovetkezo;
-    temp->elozo=uj;
     uj->kovetkezo=lista->eleje->kovetkezo;
-    uj->elozo=lista->eleje;
     lista->eleje->kovetkezo=uj;
+    uj->kovetkezo->elozo=uj;
+    uj->elozo=lista->eleje;
 
 }
 
-void beszur_a_rec_listaba(Recept *uj,Lista_rec *lista)
+void Lista_rec_beszur(Recept *uj,Lista_rec *lista)
 {
-    lista->eleje->kovetkezo->elozo=uj;
     uj->kovetkezo=lista->eleje->kovetkezo;
-    uj->elozo=lista->eleje;
     lista->eleje->kovetkezo=uj;
+    uj->kovetkezo->elozo=uj;
+    uj->elozo=lista->eleje;
 }
 
-//új hozzavalót befűzi a lista elejére
-//!Minden egyes hozzávalóhoz külön foglalunk helyet, ami felszabadítása a hívó kötelessége
-Hozzavalo* hozzavalo_beolvas(char *str)
-{
-    Hozzavalo* ujelem=(Hozzavalo*)malloc(sizeof(Hozzavalo));
-    //új értékek beolvasása
-    char ujmenny[255],ujmertek[255],ujnev[255];
-    sscanf(str,"%s %s ",ujmenny,ujmertek);
-    //!!le kell kezelni, hogy ne csak ilyen formátumban fogadja el és, hogy ha több fázisa van a hozzávalóknak: (1 dl tej)... Bevonó hozzávalói:
-    if(isdigit(ujmenny[0]))
-    {
-        ujelem->mennyiseg=atoi(ujmenny);
-        //állapítsuk meg milyen mértékegység
-        int i,k;
-        i=0;
-        while(strcmp(mertekegysegek_szovegben[i],ujmertek) && strcmp(mertekegysegek_szovegben[i],"")) i++;
-
-        if(!strcmp(mertekegysegek_szovegben[i],ujmertek)) ujelem->mertekegyseg=i;
-        else ujelem->mertekegyseg=ismeretlen;
 
-
-        k=strlen(ujmenny)+strlen(ujmertek)+2;
-        for(i=0;k<=(strlen(str));i++) ujnev[i]=str[k++];
-    }
-    else
-    {
-        strcpy(ujnev,str);
-        ujelem->mennyiseg=-1;
-        ujelem->mertekegyseg=-1;
-    }
-
-    //név eltárolása
-    strcpy(ujelem->nev,ujnev);
-
-    //visszatérünk az újdonsult elemmel
-    return ujelem;
-}
-
-Recept* beolvas(FILE *fp,char * fajlnev)
+void Lista_hoz_init(Lista_hoz *lista)
 {
-    Recept* ujelem_2=(Recept*)malloc(sizeof(Recept));
-    char temp[100];
-    int temp_int;
-
-    strcpy(ujelem_2->fajlnev,fajlnev);
-
-    //NÉV beolvasása
-    fgets(temp,100,fp);
-    strcpy(ujelem_2->nev,temp);
-
-    //nehézségi szint beolvasása
-    fgets(temp,100,fp);
-    sscanf(temp,"%d ",&temp_int);
-    ujelem_2->nehezseg=temp_int;
-
-    //becsült elkészítési idő beolvasása
-    fgets(temp,100,fp);
-    sscanf(temp,"%d ",&temp_int);
-    ujelem_2->fozesi_ido=temp_int;
-
-    //Hozzávalók beolvasása
-    beolvasas allapot;
-    allapot=elso_szakasz;
-
-    Lista_hoz *ujlista=(Lista_hoz*)malloc(sizeof(Lista_hoz));
-    ujlista->eleje=(Hozzavalo*)malloc(sizeof(Hozzavalo));
-    ujlista->vege=(Hozzavalo*)malloc(sizeof(Hozzavalo));
-
-    ujlista->eleje->kovetkezo=ujlista->vege;
-    ujlista->eleje->elozo=NULL;
-    ujlista->vege->kovetkezo=NULL;
-    ujlista->vege->elozo=ujlista->eleje;
-    Hozzavalo *ujhozza;
-    while(fgets(temp,100,fp) && strstr(temp,"Elkeszites:")==NULL)
-    {
-        switch(allapot)
-        {
-            case elso_szakasz:
-            if(strstr(temp,"Hozzavalok:")!=NULL)
-            {
-                allapot=hozzavalok_beolvas;
-                fgets(temp,100,fp);
-                sscanf(temp,"%d ",&temp_int);
-                ujelem_2->fo=temp_int;
-            }
-            break;
-
-            case hozzavalok_beolvas:
-            ujhozza=hozzavalo_beolvas(temp);
-            beszur_a_hoz_listaba(ujhozza,ujlista);
-            break;
-
-            /*
-            //hány utasítás lesz?
-            int i;
-            ujelem->elkeszites_db=atoi(temp);
-
-            //!a hívó feladata felszabadítani
-            lista_elem->elkeszites= (char **) malloc(lista_elem->elkeszites_db*sizeof(char*));
-
-            for(i=0;i<lista_elem->elkeszites_db;i++)
-            {
-                fgets(temp,400,fp);
-                lista_elem->elkeszites[i]=(char *) malloc((strlen(temp)+1)*sizeof(char));
-                strcpy(lista_elem->elkeszites[i],temp);
-            }
-            fgets(temp,400,fp);
-            break;*/
-        }
-    }
-    return ujelem_2;
+    lista->eleje=(Hozzavalo*)malloc(sizeof(Hozzavalo));
+    lista->vege=(Hozzavalo*)malloc(sizeof(Hozzavalo));
+    lista->eleje->kovetkezo=lista->vege;
+    lista->eleje->elozo=NULL;
+    lista->vege->kovetkezo=NULL;
+    lista->vege->elozo=lista->eleje;
 }
 
-//
-void lista_letrehoz(Lista_rec *lista)
+void Lista_rec_init(Lista_rec *lista)
 {
-    char temp[100]="";
-    char fajlnev[50];
-    int i;
-    FILE *fp_0=NULL;
-    FILE *fp=NULL;
-    Recept *ujelem;
-
     lista->eleje=(Recept *) malloc(sizeof(Recept));
     lista->vege=(Recept*) malloc(sizeof(Recept));
     lista->eleje->kovetkezo=lista->vege;
     lista->eleje->elozo=NULL;
     lista->vege->kovetkezo=NULL;
     lista->vege->elozo=lista->eleje;
+}
 
-    fp_0=fopen("00.txt","rt");
-    if(fp_0==NULL) printf("Nem sikerult megnyitni a fajlt!");
+/** Beolvassa a 00.txt fájlban tárolt fájlneveket, és létrehozza a láncolt listát a receptekből
+* Meghívja a Beolvas_recept, Lista_rec_beszur függvényeket.
+* @param lista Egy strázsa, a recepteken.
+* @param temp (max 100) ideiglenes puffer beolvasáshoz
+* @param fajlnev (max 50) éppen kiolvasandó fájl nevét tárolja
+* @param fp_00 FILE pointer a 00.txt fájlra
+* @param fp File pointer az éppen beolvasasndó fájlra mutat
+* @param ujelem Recept pointer, ebben tárolódik az újonnan beolvasott recept, ekkor még nincs neki foglalva hely
+* @param db_rec a 00.txt első sorában tárolt szám, megadja a receptek számát
+*/
+void Main_receptek(Lista_rec *lista)
+{
+#ifdef TESZT
+fprintf(stdout,"Main receptek függvény: \n");
+#endif
+    char temp[100]="";
+    char fajlnev[50];
+
+    FILE *fp_00=NULL;
+    FILE *fp=NULL;
+    Recept *ujelem;
+    Lista_rec_init(lista);
+
+    fp_00=fopen("00.txt","rt");
+    if(fp_00==NULL) printf("Nem sikerult megnyitni a fajlt!\n");
     else{
         //Beolvassuk hány db recept van
-        int db_rec;
-        fgets(temp,5,fp_0);
+        int db_rec,i,k;
+        fgets(temp,5,fp_00);
         db_rec=atoi(temp);
+        #ifdef TESZT
+        fprintf(stdout,"Receptek száma: %d\n",db_rec);
+        #endif
         for(i=0;i<db_rec;i++)
         {
-            char c;
-            i=0;
-            fgets(temp,50,fp_0);
-            while(temp[i]!='\n')
+            fgets(temp,50,fp_00);
+            k=0;
+            while(temp[k]!='\n')
             {
-                fajlnev[i++]=temp[i];
+                fajlnev[k++]=temp[k];
             }
-            fajlnev[i]='\0';
+            fajlnev[k]='\0';
             fp=fopen(fajlnev, "rt");
-            if (fp==NULL) printf("Nem sikerult megnyitni a fajlt!");
+            if (fp==NULL) printf("Nem sikerult megnyitni a fajlt!\n");
             else
             {
-                ujelem=beolvas(fp,fajlnev);
-                beszur_a_rec_listaba(ujelem,lista);
+                ujelem=Beolvas_recept(fp,fajlnev);
+                Lista_rec_beszur(ujelem,lista);
             }
         }
     }
+    #ifdef TESZT
+    fprintf(stdout,"----Main Receptek Vége\n");
+    #endif
 }
+/** Paraméterként átvett fájlból beolvassa a recept nevét,nehézségét,elk.idejét.
+*! Dinamikus memóriát foglal, amit a hívó feladata felszabadítani.
+* Meghívja Lista_hoz_init, Beolvas_hozzavalo, Lista_hoz_beszur függvényeket.
+* @param fp FILE pointer receptre mutatat.
+* @param fajlnev a forrásfájl neve kiterjesztéssel.
+* @param uj_rec dinamikusan foglalt terület egy recept számára.
+* @param temp ideiglenes puffer fájlból olvasáshoz.
+* @param temp_int ideiglenes puffer számok tárolásához.
+* @param allapot definiált típus, mely irányít egy switch-et, kettéválasztja a beolvasás első részét a hozzávalók beolvasásástól.
+* @param lista_hozza Strázsa a hozzávalók láncolt listáján. (!Dinamikusan foglalt)
+* @param temp_hozza ideiglenes tároló az éppen beolvasni kívánt hozzávalónak.
+* @return pointer az ujonnan létrehozott receptre, NULL, ha nem tudott dinamikusan foglalni helyet
+*/
+Recept* Beolvas_recept(FILE *fp,char * fajlnev)
+{
+    #ifdef TESZT
+    fprintf(stdout,"Beolvas_recept függvény: \n");
+    #endif
 
+    Recept* uj_rec=(Recept*)malloc(sizeof(Recept));
+    if(uj_rec!=NULL)
+    {
+        char temp[100];
+        int temp_int;
 
-void beker_alapanyagok();
+        strcpy(uj_rec->fajlnev,fajlnev);
 
-//Kiir egy Recept struktúrát, úgy hogx beolvassa az elkészítés menetétét is.
-void kiir(Lista_rec *lista)
-{
-    printf("Az on valasztasa a %s receptje\n",lista->eleje->kovetkezo->nev);
-    printf("Nehezsegi szint: %2d/10\n",lista->eleje->kovetkezo->nehezseg);
-    printf("\r");
-    printf("Varhato idotartam: %d perc\n",lista->eleje->kovetkezo->fozesi_ido);
-    Recept *egyik;
-    Hozzavalo *i;
-    egyik=lista->eleje->kovetkezo;
-    i=egyik->hozzavalok->vege;
-    printf("Hozzavalók:\n");
-    while(i!=lista->eleje->kovetkezo->hozzavalok->eleje)
-    {
-        if(i->mennyiseg>0)
-        {
-            printf("%d %s %s\n",i->mennyiseg,mertekegysegek_szovegben[i->mertekegyseg],i->nev);
-        }
-        else
+        //NÉV beolvasása
+        fgets(temp,100,fp);
+        strcpy(uj_rec->nev,temp);
+
+        //nehézségi szint beolvasása
+        fgets(temp,100,fp);
+        sscanf(temp,"%d ",&temp_int);
+        uj_rec->nehezseg=temp_int;
+
+        //becsült elkészítési idő beolvasása
+        fgets(temp,100,fp);
+        sscanf(temp,"%d ",&temp_int);
+        uj_rec->fozesi_ido=temp_int;
+
+        #ifdef TESZT
+        fprintf(stdout,"Recept: %s\n",uj_rec->fajlnev);
+        #endif
+
+        //Hozzávalók beolvasása
+        beolvasas allapot;
+        allapot=elso_szakasz;
+
+        Lista_hoz *lista_hozza=(Lista_hoz*)malloc(sizeof(Lista_hoz));
+        if(lista_hozza!=NULL)
         {
-            printf("%s\n",i->nev);
+            Lista_hoz_init(lista_hozza);
+
+            Hozzavalo *temp_hozza;
+            #ifdef TESZT
+            fprintf(stdout,"Hozzávalók beolvasása: \n");
+            #endif
+            while(fgets(temp,100,fp) && strstr(temp,"Elkeszites:")==NULL)
+            {
+                switch(allapot)
+                {
+                    case elso_szakasz:
+                    if(strstr(temp,"Hozzavalok:")!=NULL)
+                    {
+                        allapot=hozzavalok_beolvas;
+                        fgets(temp,100,fp);
+                        sscanf(temp,"%d ",&temp_int);
+                        uj_rec->fo=temp_int;
+                    }
+                    break;
+
+                    case hozzavalok_beolvas:
+                    temp_hozza=Beolvas_hozzavalo(temp);
+                    if(temp_hozza==NULL) printf("Hiba a hozzavalok letrehozasanal!\n");
+                    else Lista_hoz_beszur(temp_hozza,lista_hozza);
+                    break;
+                }
+            }
+            uj_rec->hozzavalok=lista_hozza;
         }
-        i=i->elozo;
     }
-    //!Meg kell írni, hogy csak egyet olvasson be amire szükségünk van
-    /*printf("\nElkeszites:\n");
-    int k;
-    for(k=0;k<lista->eleje->kovetkezo->elkeszites_db;k++)
-    {
-        printf("%s\n",lista->eleje->kovetkezo->elkeszites[k]);
-    }*/
+    #ifdef TESZT
+    fprintf(stdout,"----Beolvas_recept Vége");
+    #endif
+    return uj_rec;
 }
 
-//A hozzávalóknak foglalt dinamikus memória területet felszabadítja
-
-void szabadit_hozzavalok(Recept *eleje)
+/** Paraméterkén átvesz egy sornyi beolvasott hozzávalót, amivel aztán feltölt egy Hozzavalo típusú dinamikusan fogalalt változót.
+* @param str
+* @param uj_hozz
+* @param ujmenny
+* @param ujmertek
+* @param ujnev
+* @return Értelmezett hozzávalóra mutatott pointerrel, NULL, ha nem sikerült dinamikusan memóriát foglalni.
+*/
+Hozzavalo* Beolvas_hozzavalo(char *str)
 {
-    Recept *aktrec=eleje;
-    Hozzavalo *akt;
-    Hozzavalo *kov=NULL;
-    while(akt)
+    #ifdef TESZT
+    fprintf(stdout,"Beolvas_hozzavalo függvény: \n");
+    #endif
+    Hozzavalo* uj_hozz=(Hozzavalo*)malloc(sizeof(Hozzavalo));
+    if(uj_hozz!=NULL)
     {
-        akt=aktrec->hozzavalok->eleje;
-        while(akt)
+        char ujmenny[255],ujmertek[255],ujnev[255];
+        sscanf(str,"%s %s ",ujmenny,ujmertek);
+
+        if(isdigit(ujmenny[0]))
         {
-            kov=akt->kovetkezo;
-            free(akt);
-            akt=kov;
+            int i,k;
+            uj_hozz->mennyiseg=atoi(ujmenny);
+            i=0;
+            while(strcmp(mertekegysegek_szovegben[i],ujmertek) && strcmp(mertekegysegek_szovegben[i],"")) i++;
+            if(!strcmp(mertekegysegek_szovegben[i],ujmertek)) uj_hozz->mertekegyseg=i;
+            else uj_hozz->mertekegyseg=ismeretlen;
+
+
+            k=strlen(ujmenny)+strlen(ujmertek)+2;
+            for(i=0;k<=(strlen(str));i++) ujnev[i]=str[k++];
         }
-        akt=aktrec->hozzavalok->eleje->kovetkezo;
-    }
-}
-
-//Az elkészítés módját tároló char mátrixnak foglalt területet felszabadítja
-void szabadit_elkeszites(char** pt,int db)
-{
-    int i;
-    for(i=0;i<db;i++)
-    {
-        free(pt[i]);
-    }
-    free(pt);
-}
-
-//A recept struktúráknak dinamikusan foglalt memóriát felszabadítja
-void szabadit_receptek(Recept *eleje)
-{
-    Recept *akt=eleje;
-    Recept *kov=NULL;
-    while(akt)
-    {
-        kov=akt->kovetkezo;
-        free(akt);
-        akt=kov;
+        else
+        {
+            strcpy(ujnev,str);
+            uj_hozz->mennyiseg=-1;
+            uj_hozz->mertekegyseg=-1;
+        }
+
+        strcpy(uj_hozz->nev,ujnev);
+        #ifdef TESZT
+        fprintf(stdout,"%s",ujnev);
+        fprintf(stdout,"----Beolvas_hozzavalo Vége\n");
+        #endif
     }
+    return uj_hozz;
 }
 
 int main()
 {
     //debugmalloc_naplofajl("dmalloc.txt");
     Lista_rec receptek;
-    Recept *temp;
+    int i;
     menu fomenu;
     fomenu=alap;
     printf("Udvozlom a Receptor programban!\n");
@@ -332,12 +256,15 @@ int main()
         switch(fomenu)
         {
             case alap:
-            scanf("%d",&fomenu);
+            scanf("%d",&i);
+            fomenu=betolt_adatok;
             break;
             case betolt_adatok:
-            printf("Ezen dolgozom\n");
-            lista_letrehoz(&receptek);
-            kiir(&receptek);
+            Main_receptek(&receptek);
+            #ifdef TESZT
+            fprintf(stdout,"MAIN PROGRAM\n");
+            #endif
+            //kiir(&receptek);
             szabadit_hozzavalok(receptek.eleje);
             //szabadit_elkeszites(receptek.)
             szabadit_receptek(receptek.eleje);
diff --git a/receptor/main.c.bak b/receptor/main.c.bak
deleted file mode 100644
index 104d03262b71d1f4c5cc214189346b95da6e3334..0000000000000000000000000000000000000000
--- a/receptor/main.c.bak
+++ /dev/null
@@ -1,212 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-//#include "debugmalloc.h"
-
-//adatszerkezet
-typedef enum {
-    elso_szakasz,hozzavalok,elkeszites_modja
-} beolvasas;
-
-typedef enum {
-    mg=0,g,dkg,kg,ml,cl,dl,l,db,teaskanal,kiskanal,evokanal,merokanal,par,fej,gerezd,szelet,csomag,ismeretlen
-} mertek;
-
-char mertekegysegek_szovegben[][15]={"mg","g","dkg","kg","ml","cl","dl","l","db","teaskanal","kiskanal",
-"evokanal","merokanal","pár","fej","gerezd","szelet","csomag","\0"};
-
-typedef struct hozzavalo_struk{
-    char nev[100];
-    int mennyiseg;
-    mertek mertekegyseg;
-    struct hozzavalo_strukt *kovetkezo_hoz;
-} Hozzavalo;
-
-typedef struct recept{
-    char nev[100];
-    int nehezseg;
-    int fozesi_ido; //percben kifejezve
-    Hozzavalo *hozzavalok_eleje;
-    int fo; //hány fő részére
-    int elkeszites_db;
-    char** elkeszites;
-    struct recept *kovetkezo_rec;
-} Recept;
-
-//szabadítsuk fel a dinamikus tömbnek a helyét
-void szabadit_hozzavalok(Hozzavalo * eleje)
-{
-    Hozzavalo *akt=eleje;
-    Hozzavalo *kov=NULL;
-    while(akt)
-    {
-        kov=akt->kovetkezo_hoz;
-        free(akt);
-        akt=kov;
-    }
-}
-void szabadit_elkeszites(char** pt,int db)
-{
-    int i;
-    for(i=0;i<db;i++)
-    {
-        free(pt[i]);
-    }
-    free(pt);
-}
-void szabadit_receptek(Recept *eleje)
-{
-    Recept *akt=eleje;
-    Recept *kov=NULL;
-    while(akt)
-    {
-        kov=akt->kovetkezo_rec;
-        free(akt);
-        akt=kov;
-    }
-}
-
-void kiir(Recept *akt)
-{
-    printf("Az on valasztasa a %s receptje\n",akt->nev);
-    printf("Nehezsegi szint: %2d/10\n",akt->nehezseg);
-    printf("\r");
-    printf("Varhato idotartam: %d perc\n",akt->fozesi_ido);
-    struct hozzavalo_struk *i;
-    i=akt->hozzavalok_eleje;
-    printf("Hozzavalók:\n");
-    while(i!=NULL)
-    {
-        printf("%d %s %s\n",i->mennyiseg,mertekegysegek_szovegben[i->mertekegyseg],i->nev);
-        i=i->kovetkezo_hoz;
-    }
-    printf("\nElkeszites:\n");
-    int k;
-    for(k=0;k<akt->elkeszites_db;k++)
-    {
-        printf("%s\n",akt->elkeszites[k]);
-    }
-}
-
-//új hozzavalót befűzi a lista elejére
-//!Minden egyes hozzávalóhoz külön foglalunk helyet, ami felszabadítása a hívó kötelessége
-Hozzavalo* hozzavalo_beolvas(Hozzavalo *eleje,char *sztring)
-{
-    Hozzavalo* ujelem=(Hozzavalo*)malloc(sizeof(Hozzavalo));
-    //új értékek beolvasása
-    char ujmenny[255],ujmertek[255],ujnev[100];
-    sscanf(sztring,"%s %s %s",ujmenny,ujmertek,ujnev);
-    //!!le kell kezelni, hogy ne csak ilyen formátumban fogadja elés, hogy ha több fázisa van a hozzávalóknak: (1 dl tej)... Bevonó hozzávalói:
-    if(isdigit(ujmenny[0])) ujelem->mennyiseg=atoi(ujmenny);
-
-    //állapítsuk meg milyen mértékegység
-    int i;
-    i=0;
-    while(strcmp(mertekegysegek_szovegben[i],ujmertek) && strcmp(mertekegysegek_szovegben[i],"")) i++;
-
-    if(!strcmp(mertekegysegek_szovegben[i],ujmertek)) ujelem->mertekegyseg=i;
-    else ujelem->mertekegyseg=ismeretlen;
-
-    //név eltárolása
-    strcpy(ujelem->nev,ujnev);
-
-    //befűzzük a láncolt lista elejére
-    ujelem->kovetkezo_hoz=eleje;
-
-    //visszatérünk az újdonsult elő elemmel
-    return ujelem;
-}
-
-//
-void beolvas(Recept *lista_eleje)
-{
-    char temp[400];
-    int temp2;
-    FILE *fp=NULL;
-    fp=fopen("01.txt", "rt");
-
-    //Debug
-    if (fp==NULL) printf("Nem sikerult megnyitni a fajlt!");
-    else{
-        //NÉV beolvasása
-        fgets(temp,400,fp);
-        strcpy(temp,lista_eleje->nev);
-
-        //nehézségi szint beolvasása
-        fgets(temp,400,fp);
-        sscanf(temp,"%d ",&temp2);
-        lista_eleje->nehezseg=temp2;
-
-        //becsült elkészítési idő beolvasása
-        fgets(temp,400,fp);
-        sscanf(temp,"%d ",&temp2);
-        lista_eleje->fozesi_ido=temp2;
-
-        //Hozzávalók és Elkészítés menetének beolvasása
-        beolvasas allapot;
-        allapot=elso_szakasz;
-
-        //Azért, hogy a NULL pointer mutassa a lista végét
-        lista_eleje->hozzavalok_eleje=NULL;
-
-        int i;
-        int c;
-        while((c=fgetc(fp))!=EOF)
-        {
-            fgets(temp,400,fp);
-            switch(allapot)
-            {
-                case elso_szakasz:
-                if(strstr(temp,"Hozzavalok:")!=NULL)
-                {
-                    allapot=hozzavalok;
-                    fgets(temp,400,fp);
-                    sscanf(temp,"%d ",&temp2);
-                    lista_eleje->fo=temp2;
-                }
-                break;
-
-                case hozzavalok:
-                if(strstr(temp,"Elkeszites:")!=NULL)
-                {
-                    allapot=elkeszites_modja;
-                    break;
-                }
-                else
-                {
-                    lista_eleje->hozzavalok_eleje=hozzavalo_beolvas(lista_eleje->hozzavalok_eleje,temp);
-                }
-                break;
-                case elkeszites_modja:
-                //hány utasítás lesz?
-                lista_eleje->elkeszites_db=atoi(temp);
-
-                //!a hívó feladata felszabadítani
-                lista_eleje->elkeszites= (char **) malloc(lista_eleje->elkeszites_db*sizeof(char*));
-
-                for(i=0;i<lista_eleje->elkeszites_db;i++)
-                {
-                    fgets(temp,400,fp);
-                    lista_eleje->elkeszites[i]=(char *) malloc((strlen(temp)+1)*sizeof(char));
-                    strcpy(lista_eleje->elkeszites[i],temp);
-                }
-                fgets(temp,400,fp);
-                break;
-            }
-        }
-    }
-}
-
-void beker_alapanyagok();
-
-int main()
-{
-    //debugmalloc_naplofajl("dmalloc.txt");
-    Recept *receptek=NULL;
-    beolvas(receptek);
-    kiir(receptek);
-    szabadit_hozzavalok(receptek->hozzavalok_eleje);
-    szabadit_elkeszites(receptek->elkeszites,receptek->elkeszites_db);
-    return 0;
-}
diff --git a/receptor/obj/Debug/debugmalloc.o b/receptor/obj/Debug/debugmalloc.o
deleted file mode 100644
index 7758ed2eb36a81df378757240e751a3a7c9ce8cb..0000000000000000000000000000000000000000
Binary files a/receptor/obj/Debug/debugmalloc.o and /dev/null differ
diff --git a/receptor/obj/Debug/main.o b/receptor/obj/Debug/main.o
deleted file mode 100644
index 4381b6e6e5ee704d7e0d3aa51811a51259e01af5..0000000000000000000000000000000000000000
Binary files a/receptor/obj/Debug/main.o and /dev/null differ
diff --git a/receptor/receptor.cscope_file_list b/receptor/receptor.cscope_file_list
deleted file mode 100644
index b1d3f7e951b568023d4ba763d84c59c3fed91915..0000000000000000000000000000000000000000
--- a/receptor/receptor.cscope_file_list
+++ /dev/null
@@ -1,2 +0,0 @@
-"D:\Dropbox\linux\receptor\debugmalloc.h"
-"D:\Dropbox\linux\receptor\main.c"
diff --git a/receptor/receptor.depend b/receptor/receptor.depend
deleted file mode 100644
index b5ac80f35a5e0e74e06d419e52590d7745cb9683..0000000000000000000000000000000000000000
--- a/receptor/receptor.depend
+++ /dev/null
@@ -1,41 +0,0 @@
-# depslib dependency file v1.0
-1384195283 source:/home/don/Dokumentumok/receptor/main.c
-	<stdio.h>
-	<stdlib.h>
-	<string.h>
-	<ctype.h>
-
-1384196086 
-
-1384196074 source:d:\dropbox\linux\receptor\debugmalloc.c
-	<stdlib.h>
-	<stdio.h>
-	<ctype.h>
-	<string.h>
-	<time.h>
-	<stdarg.h>
-	"debugmalloc.h"
-
-1384196074 oc.h"
-
-1384196086 d:\dropbox\linux\receptor\debugmalloc.h
-	<stdlib.h>
-
-1384264204 source:d:\dropbox\linux\receptor\main.c
-	<stdio.h>
-	<stdlib.h>
-	<string.h>
-	<ctype.h>
-
-1384265384 source:/home/don/Dokumentumok/Dropbox/linux/receptor/main.c
-	<stdio.h>
-	<stdlib.h>
-	<string.h>
-	<ctype.h>
-
-1384646109 source:/home/don/Dokumentumok/Dropbox/linux/prog-i-nzh/receptor/main.c
-	<stdio.h>
-	<stdlib.h>
-	<string.h>
-	<ctype.h>
-
diff --git a/receptor/receptor.h b/receptor/receptor.h
index 7fa759bb345c15e68bc30462ed189f8e894a95df..61b55ed608e9e3707eec9499087b655352f7fc2b 100644
--- a/receptor/receptor.h
+++ b/receptor/receptor.h
@@ -1,16 +1,166 @@
-typedef enum menu;
-typedef struct Hozzavalo Hozzavalo;
-typedef struct Lista_hoz Lista_hoz;
-typedef struct Recept Recept;
-typedef struct lista_recept Lista_rec;
-
-void beszur_a_hoz_listaba(Hozzavalo*,Lista_hoz*);
-void beszur_a_rec_listaba(Recept*,Lista_rec*);
-Hozzavalo* hozzavalo_beolvas(char*);
-Recept* beolvas(FILE*,char*);
-void lista_letrehoz(Lista_rec*);
-void beker_alapanyagok();
-void kiir(Recept*);
-void szabadit_hozzavalok(Hozzavalo*);
-void szabadit_elkeszites(char**,int db);
-void szabadit_receptek(Recept*);
+#define TESZT
+
+typedef enum menu {
+    alap=0,
+    betolt_adatok=1,
+    alapanyagok_beker=2,
+    kereses=3
+}menu;
+
+typedef enum beolvasas{
+    elso_szakasz,
+    hozzavalok_beolvas
+} beolvasas;
+
+typedef enum mertek{
+    mg=0,g,dkg,kg,ml,cl,dl,l,db,teaskanal,kiskanal,evokanal,merokanal,par,fej,gerezd,szelet,csomag,ismeretlen
+} mertek;
+/** Egy hozzávalót tároló struktúra.*/
+typedef struct Hozzavalo{
+    char nev[100];
+    int mennyiseg;
+    mertek mertekegyseg;
+    struct Hozzavalo *elozo;
+    struct Hozzavalo *kovetkezo;
+} Hozzavalo;
+
+typedef struct Lista_hoz{
+    Hozzavalo *eleje;
+    Hozzavalo *vege;
+}Lista_hoz;
+
+typedef struct Recept{
+    char nev[100];
+    char fajlnev[100];
+    int nehezseg;
+    int fozesi_ido; //percben kifejezve
+    Lista_hoz *hozzavalok;
+    int fo; //hány fő részére
+    int elkeszites_db;
+    char** elkeszites;
+    struct Recept *kovetkezo;
+    struct Recept *elozo;
+} Recept;
+
+//Láncolt lista adatszerkezet strázsája, pointerek a lista első és utolsó elemére
+typedef struct Lista_rec{
+    Recept *eleje;
+    Recept *vege;
+}Lista_rec;
+
+char mertekegysegek_szovegben[][15]={"mg","g","dkg","kg","ml","cl","dl","l","db","teaskanal","kiskanal",
+"evokanal","merokanal","pár","fej","gerezd","szelet","csomag",""};
+
+void Beolvas_elkeszites()
+{
+    /*
+    //hány utasítás lesz?
+    int i;
+    ujelem->elkeszites_db=atoi(temp);
+
+    //!a hívó feladata felszabadítani
+    lista_elem->elkeszites= (char **) malloc(lista_elem->elkeszites_db*sizeof(char*));
+
+    for(i=0;i<lista_elem->elkeszites_db;i++)
+    {
+        fgets(temp,400,fp);
+        lista_elem->elkeszites[i]=(char *) malloc((strlen(temp)+1)*sizeof(char));
+        strcpy(lista_elem->elkeszites[i],temp);
+    }
+    fgets(temp,400,fp);
+    break;*/
+}
+
+void kiir(Lista_rec *lista)
+{
+    Recept *egyik;
+    Hozzavalo *i;
+    printf("Az on valasztasa a %s receptje\n",lista->eleje->kovetkezo->nev);
+    printf("Nehezsegi szint: %2d/10\n",lista->eleje->kovetkezo->nehezseg);
+    printf("\r");
+    printf("Varhato idotartam: %d perc\n",lista->eleje->kovetkezo->fozesi_ido);
+
+    i=lista->eleje->kovetkezo->hozzavalok;
+    printf("Hozzavalók: \n");
+    while(i!=lista->eleje->kovetkezo->hozzavalok->eleje)
+    {
+        if(i->mennyiseg>0)
+        {
+            printf("%d %s %s\n",i->mennyiseg,mertekegysegek_szovegben[i->mertekegyseg],i->nev);
+        }
+        else
+        {
+            printf("%s\n",i->nev);
+        }
+        i=i->elozo;
+    }
+    //!Meg kell írni, hogy csak egyet olvasson be amire szükségünk van
+    /*printf("\nElkeszites:\n");
+    int k;
+    for(k=0;k<lista->eleje->kovetkezo->elkeszites_db;k++)
+    {
+        printf("%s\n",lista->eleje->kovetkezo->elkeszites[k]);
+    }*/
+}
+
+//A hozzávalóknak foglalt dinamikus memória területet felszabadítja
+
+void szabadit_hozzavalok(Recept *eleje)
+{
+    #ifdef TESZT
+    fprintf(stdout,"Szabadit_hozzavalok: \n");
+    #endif
+    int db=0;
+    Recept *mozgo_rec;
+    Hozzavalo *mozgo_hoz,*kov;
+    for(mozgo_rec=eleje->kovetkezo;mozgo_rec->kovetkezo!=NULL;mozgo_rec=mozgo_rec->kovetkezo)
+    {
+        for(mozgo_hoz=mozgo_rec->hozzavalok->eleje->kovetkezo;mozgo_hoz->kovetkezo!=NULL;)
+        {
+            kov=mozgo_hoz->kovetkezo;
+            free(mozgo_hoz);
+            db++;
+            mozgo_hoz=kov;
+        }
+        free(mozgo_rec->hozzavalok->eleje);
+        free(mozgo_rec->hozzavalok->vege);
+    }
+    #ifdef TESZT
+    fprintf(stdout,"Felszabaditott hozzavalok: %d\n",db);
+    fprintf(stdout,"----Szabadit_hozzavalok Vége\n");
+    #endif
+}
+
+//Az elkészítés módját tároló char mátrixnak foglalt területet felszabadítja
+void szabadit_elkeszites(char** pt,int db)
+{
+    int i;
+    for(i=0;i<db;i++)
+    {
+        free(pt[i]);
+    }
+    free(pt);
+}
+
+//A recept struktúráknak dinamikusan foglalt memóriát felszabadítja
+void szabadit_receptek(Recept *eleje)
+{
+    #ifdef TESZT
+    fprintf(stdout,"Szabadit_receptek: \n");
+    #endif
+    int db=0;
+    Recept *akt,*kov;
+    for(akt=eleje->kovetkezo;akt->kovetkezo!=NULL;)
+    {
+        kov=akt->kovetkezo;
+        free(akt);
+        db++;
+        akt=kov;
+    }
+    free(eleje);
+    #ifdef TESZT
+    fprintf(stdout,"Felszabaditott receptek: %d\n",db);
+    fprintf(stdout,"----Szabadit_hozzavalok Vége\n");
+    #endif
+}
+
diff --git a/receptor/receptor.layout b/receptor/receptor.layout
deleted file mode 100644
index e76d1f1505628ac4022d2fc7594341e9b4cd7afb..0000000000000000000000000000000000000000
--- a/receptor/receptor.layout
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
-<CodeBlocks_layout_file>
-	<ActiveTarget name="Debug" />
-	<File name="main.c" open="1" top="1" tabpos="1">
-		<Cursor position="4545" topLine="233" />
-	</File>
-	<File name="receptor.h" open="1" top="0" tabpos="2">
-		<Cursor position="0" topLine="0" />
-	</File>
-</CodeBlocks_layout_file>
diff --git a/receptor/test/0 b/receptor/test/0
deleted file mode 100644
index e1b50cc7df42d718e5bb857af3cafe4152fdedba..0000000000000000000000000000000000000000
--- a/receptor/test/0
+++ /dev/null
@@ -1,2 +0,0 @@
-104
-01.txt
diff --git a/receptor/test/bin/Debug/test b/receptor/test/bin/Debug/test
deleted file mode 100755
index c828b84bebe4f4786bd8b019e4c1856ee1d0e0ec..0000000000000000000000000000000000000000
Binary files a/receptor/test/bin/Debug/test and /dev/null differ
diff --git a/receptor/test/main.c b/receptor/test/main.c
deleted file mode 100644
index fb49ba8c1becb785402fd592082330d5324f4796..0000000000000000000000000000000000000000
--- a/receptor/test/main.c
+++ /dev/null
@@ -1,44 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-
-int main()
-{
-    char temp[400]="\0";
-    FILE *fp=NULL;
-    int db_rec;
-    //Beolvassuk hány db recept van
-    fp=fopen(,"rt");
-    fgets(temp,100,fp);
-    db_rec=atoi(temp);
-    printf("%d",db_rec);
-    fclose(fp);
-
-    /*char szoveg[]={"3 fej hegyma\0"};
-    char temp[30];
-    char temp2[30];
-    sscanf(szoveg,"%s %s %s",temp,NULL,temp2);
-    printf("%s\n%s",temp,temp2);
-    return 0;*/
-    /*char temp[100];
-    FILE *fp;
-    fp=fopen("test.txt","rt");
-    printf("%d\n\n",fgets(temp,100,fp));
-    printf("%s\n\n",temp);
-    printf("%d\n\n",fgets(temp,100,fp));
-    printf("%d",temp);*/
-}
-/* isdigit example
-#include <stdio.h>
-#include <stdlib.h>
-#include <ctype.h>
-int main ()
-{
-  char str[]="1776ad";
-  int year;
-  if (isdigit(str[0]))
-  {
-    year = atoi (str);
-    printf ("The year that followed %d was %d.\n",year,year+1);
-  }
-  return 0;
-}*/
diff --git a/receptor/test/obj/Debug/main.o b/receptor/test/obj/Debug/main.o
deleted file mode 100644
index 2c49adce9b45a100db9fa844fb93e988dd248e02..0000000000000000000000000000000000000000
Binary files a/receptor/test/obj/Debug/main.o and /dev/null differ
diff --git a/receptor/test/test.cbp b/receptor/test/test.cbp
deleted file mode 100644
index a6a1435b4e82f33d022142975e07a744081ebf22..0000000000000000000000000000000000000000
--- a/receptor/test/test.cbp
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
-<CodeBlocks_project_file>
-	<FileVersion major="1" minor="6" />
-	<Project>
-		<Option title="test" />
-		<Option pch_mode="2" />
-		<Option compiler="gcc" />
-		<Build>
-			<Target title="Debug">
-				<Option output="bin/Debug/test" prefix_auto="1" extension_auto="1" />
-				<Option object_output="obj/Debug/" />
-				<Option type="1" />
-				<Option compiler="gcc" />
-				<Compiler>
-					<Add option="-g" />
-				</Compiler>
-			</Target>
-		</Build>
-		<Compiler>
-			<Add option="-Wall" />
-		</Compiler>
-		<Unit filename="main.c">
-			<Option compilerVar="CC" />
-		</Unit>
-		<Extensions>
-			<code_completion />
-			<debugger />
-		</Extensions>
-	</Project>
-</CodeBlocks_project_file>
diff --git a/receptor/test/test.depend b/receptor/test/test.depend
deleted file mode 100644
index f9204af2a46218b38330cf70ef4b31b1286a2138..0000000000000000000000000000000000000000
--- a/receptor/test/test.depend
+++ /dev/null
@@ -1,15 +0,0 @@
-# depslib dependency file v1.0
-1384185859 source:/home/don/Dokumentumok/receptor/test/main.c
-	<stdio.h>
-	<stdlib.h>
-	<stdio.h>
-	<stdlib.h>
-	<ctype.h>
-
-1384610858 source:/home/don/Dokumentumok/Dropbox/linux/prog-i-nzh/receptor/test/main.c
-	<stdio.h>
-	<stdlib.h>
-	<stdio.h>
-	<stdlib.h>
-	<ctype.h>
-
diff --git a/receptor/test/test.layout b/receptor/test/test.layout
deleted file mode 100644
index c73bf9c41ea90b40d011f3cb6f9b161c29ea8f18..0000000000000000000000000000000000000000
--- a/receptor/test/test.layout
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
-<CodeBlocks_layout_file>
-	<ActiveTarget name="Debug" />
-	<File name="main.c" open="0" top="0" tabpos="2">
-		<Cursor position="167" topLine="0" />
-	</File>
-</CodeBlocks_layout_file>
diff --git a/receptor/test/test.txt b/receptor/test/test.txt
deleted file mode 100644
index f4edd0862e5a13815d219be735fa2db42e70cb9d..0000000000000000000000000000000000000000
--- a/receptor/test/test.txt
+++ /dev/null
@@ -1 +0,0 @@
-Kelt teszta
diff --git a/receptor/test/test.txt~ b/receptor/test/test.txt~
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000