updated for slightly better organization, and another attempt at setting properties to be accessed by all modules