Re-structuring the module and adding the ability to use attachments.