Refactored Project Structure into submodules