input mechanisms