more structure around modules