A systematic internal model control(IMC) controller design methodology has been developed for various types of multivariable processes. When we try to apply IMC to various systems several implementation problems are encountered. In this paper, we resolve these problems and suggest a systematic IMC controller design methodology. IMC show very good performance and is easy to tune for open0loop stable systems. For unstable system we apply IMC after stabilizing the systems using the pole placement technique. A combination of quadratic programming and IMC can handle constraints on manipulated and controlled variables.