add ugly input protocol