The actual keyboarding tools are completely seperate from the server and client code. As far as features are concerned, they only need to write to a file (a fifo read by the client)