Good Job, I have a note , instead struct the project based on layers, we can use multi modules instead