Split up into modules in order to accommodate multiple functions