The title may not be the best thing to describe my question and I apologize for that
I am a client with a project that is basically a private social network, the project is aimed at a certain family and it will have calendar, events, phone book, family tree and some statistics
I have used various websites to find an experienced freelancer to do my project and I happen to come across this company whom showed me some really nice results
We made a contract outside of the website, listing all of the project's features, how it should work, and the milestones. We came to agree to have an upfront payment of 15% from the total amount, then after each milestone is approved we pay the amount agreed for that milestone. The contract was signed and scanned then sent back to us.
The project was supposed to take four months, but it ended up taking over eight months, and before receiving the work of the second milestone, the freelancer demanded the payment before sharing the work with us. Obviously that is not following our contract and I mentioned it to the freelancer, but they simply replied with "Our management does not approve of your contract" and I ended up paying for absolutely nothing in return
While that experience was very bad, my manager was to try again but I am not sure how to be able to avoid such incidents with freelancers. I understand that not all freelancers are the same, but I do not was to be paying for something that I am not going to receive.
What would be the best way to ensure that this does not happen again? a contract through a lawyer?