I have a contract that instantiates a different contract - called Project contract. I made it so that I can deposit ETH into the Project contract and also withdraw its balance through functions of the first contract. The thing is: they are obviously separate. So, I could withdraw the funds from the Project contract directly on it. I do not want the users of first contract to be able to go into the Project contract directly and withdraw the balance from there rather than doing it through the first.
How do I limit their ability to depend only on the first contract?