fixed static Program class and modularized components

Now they are in seperated classes