Update with further module separation.