Organize project structure into three separate modules