added optionalrequirment to differenciate optional modules from soft definition of modules