Controller design