Introduction to Non-Ideal Solutions