make input plugin interface