module patterns