what makes a contract valid