further work on module structure