Changed modules to classes, and added a blocker module