Refactored module create to pass in an array of modules, added basic event functionality