splitting into modules