Splitting into modules to support acceptance testing.