Split up into smaller sub-modules