add module paramaters and separate constructor