Issue #12 Split project to modules.