Reorganized the project into maven modules