rewritten reactor module to classes