controller design