add module requirement functionality