Fixed the hasChanged state in the InputMethod class.
Added a selfhosted option to the interface.
Added a isSelfhosted function to the interface and implementation.