Temporarily putting up my current work.
Trying to merge.
Uninstantiated modules can now be passed as method parameters.