made some modules and classes for the code to live in