modules with classes sort of work, but need refactoring!