Put classes in module to avoid polluting the top-level namespace