Changed everything to be a module with classes