Split source code in modules (see #23).