 A "chess engine" is software that calculates and orders which moves are the strongest to play in a given position.Engine authors focus on improving the play of their engines, often just importing the engine into a graphical user interface (GUI) developed by someone else.Engines communicate with the GUI by following standardized protocols such as the Universal Chess Interface developed by Stefan Meyer-Kahlen and Franz Huber or the Chess Engine Communication Protocol developed by Tim Mann for GNU Chess and Winboard.