Split class Module into [i] Function, containing the dynamic code generation parts, and [ii] Module, now containing only all static type-related parts