Provide a somewhat generic way to build modules