working on Dispacher and make the things more OO