reworked module structure